All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 9m20s
55 lines
1.7 KiB
Go
55 lines
1.7 KiB
Go
package admin
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
configapp "github.com/break/junhong_cmp_fiber/internal/application/systemconfig"
|
|
"github.com/break/junhong_cmp_fiber/internal/model/dto"
|
|
configquery "github.com/break/junhong_cmp_fiber/internal/query/systemconfig"
|
|
"github.com/break/junhong_cmp_fiber/pkg/errors"
|
|
"github.com/break/junhong_cmp_fiber/pkg/response"
|
|
)
|
|
|
|
// SystemConfigHandler 提供受控系统配置查询和单 Key 更新接口。
|
|
type SystemConfigHandler struct {
|
|
listQuery *configquery.ListQuery
|
|
updateService *configapp.UpdateService
|
|
}
|
|
|
|
// NewSystemConfigHandler 创建系统配置 Handler。
|
|
func NewSystemConfigHandler(listQuery *configquery.ListQuery, updateService *configapp.UpdateService) *SystemConfigHandler {
|
|
return &SystemConfigHandler{listQuery: listQuery, updateService: updateService}
|
|
}
|
|
|
|
// List 查询受控系统配置列表。
|
|
// GET /api/admin/system-configs
|
|
func (h *SystemConfigHandler) List(c *fiber.Ctx) error {
|
|
var request dto.SystemConfigListRequest
|
|
if err := c.QueryParser(&request); err != nil {
|
|
return errors.New(errors.CodeInvalidParam)
|
|
}
|
|
result, err := h.listQuery.Execute(c.UserContext(), request)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return response.Success(c, result)
|
|
}
|
|
|
|
// Update 更新一个已注册且允许修改的系统配置。
|
|
// PUT /api/admin/system-configs/:key
|
|
func (h *SystemConfigHandler) Update(c *fiber.Ctx) error {
|
|
key := c.Params("key")
|
|
if key == "" {
|
|
return errors.New(errors.CodeInvalidParam)
|
|
}
|
|
var request dto.UpdateSystemConfigRequest
|
|
if err := c.BodyParser(&request); err != nil {
|
|
return errors.New(errors.CodeInvalidParam)
|
|
}
|
|
result, err := h.updateService.Execute(c.UserContext(), key, request)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return response.Success(c, result)
|
|
}
|