- 重构了 ACME 相关的代码结构,增加了 Apply、GetProvider 和 ReNew函数 - 新增了域名申请功能,包括添加域名和申请证书 - 更新了数据库模型和相关接口,以支持新的域名申请功能 - 引入了 Cloudflare 的 DNS 提供商配置
60 lines
1.2 KiB
Go
60 lines
1.2 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 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}))
|
|
}
|