package api

import (
	"gadmin/internal/admin/forms"
	"gadmin/internal/admin/service"
	"github.com/gin-gonic/gin"
)

func GetDrainageServer(ctx *gin.Context) {
	var req forms.GetDrainageServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.Get(ctx, req))
}

func EditDrainageServer(ctx *gin.Context) {
	var req forms.EditDrainageServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.Edit(ctx, req))
}

func GetDisplayServer(ctx *gin.Context) {
	var req forms.GetDisplayServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.GetDisplay(ctx, req))
}

func EditDisplayServer(ctx *gin.Context) {
	var req forms.EditDisplayServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.EditDisplay(ctx, req))
}

func GetWhiteListServer(ctx *gin.Context) {
	var req forms.GetWhiteListServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.GetWhiteList(ctx, req))
}

func EditWhiteListServer(ctx *gin.Context) {
	var req forms.EditWhiteListServerReq
	if err := ctx.ShouldBind(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	if err := forms.ParseParams(&req); err != nil {
		ctx.JSON(200, ErrorResponse(err))
		return
	}

	ctx.JSON(200, service.DrainageServer.EditWhiteList(ctx, req))
}
