package handler import ( "acme-mana-server-go/model" "acme-mana-server-go/service" "acme-mana-server-go/vo" "github.com/gin-gonic/gin" "strconv" ) var domainService = &service.DomainService{} type DomainHandler struct { } func (d *DomainHandler) Register(r *gin.RouterGroup) { group := r.Group("/domain") group.GET("/:id", d.Get) group.POST("/", d.Add) group.POST("/page", d.Page) } func (d *DomainHandler) Add(c *gin.Context) { var req vo.DomainAddReq err := c.ShouldBindJSON(&req) if err != nil { c.JSON(200, vo.Fail(err.Error())) return } domain := &model.Domain{ AcmeUserId: req.AcmeUserId, Name: req.Name, Hosts: req.Hosts, Provider: req.Provider, ProviderConf: req.ProviderConf, } domainService.Add(domain) c.JSON(200, vo.Success(nil)) } func (d *DomainHandler) Get(c *gin.Context) { idStr := c.Param("id") id, err := strconv.Atoi(idStr) if err != nil { panic(err) } domain := domainService.Get(id) c.JSON(200, vo.Success(domain)) } func (d *DomainHandler) Page(c *gin.Context) { req := &vo.DomainPageReq{} err := c.ShouldBindJSON(req) if err != nil { panic(err) } total, list := domainService.Page(req) c.JSON(200, vo.Success(vo.PageResult{Total: total, List: list})) }