- 新增 ACME客户端功能,支持域名注册和证书申请 - 添加数据库模型和操作,用于存储和管理域名信息 - 实现 API 接口,提供域名注册、获取和分页查询功能 -集成全局错误处理和 panic捕获 - 添加单元测试和集成测试
53 lines
1.1 KiB
Go
53 lines
1.1 KiB
Go
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 domain model.Domain
|
|
err := c.ShouldBindJSON(&domain)
|
|
if err != nil {
|
|
c.JSON(200, vo.Fail(err.Error()))
|
|
return
|
|
}
|
|
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}))
|
|
}
|