refactor: organize service dto contracts

This commit is contained in:
Yvan
2026-08-21 14:00:19 +08:00
parent e81a641953
commit d91f0554fd
65 changed files with 865 additions and 696 deletions
+15 -14
View File
@@ -2,6 +2,7 @@ package handler
import (
"kra/internal/service"
"kra/internal/service/dto"
"github.com/gin-gonic/gin"
)
@@ -11,7 +12,7 @@ type API struct{ service *service.APIService }
func NewAPI(service *service.APIService) *API { return &API{service: service} }
func (h *API) List(c *gin.Context) {
var req service.APIListRequest
var req dto.APIListRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -40,7 +41,7 @@ func (h *API) All(c *gin.Context) {
Write(c, CodeSuccess, gin.H{"apis": items}, "获取成功")
}
func (h *API) Create(c *gin.Context) {
var req service.APIRequest
var req dto.APIRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -57,7 +58,7 @@ func (h *API) Create(c *gin.Context) {
Write(c, CodeSuccess, created, "创建成功")
}
func (h *API) Update(c *gin.Context) {
var req service.APIRequest
var req dto.APIRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -73,7 +74,7 @@ func (h *API) Update(c *gin.Context) {
Write(c, CodeSuccess, gin.H{}, "修改成功")
}
func (h *API) Delete(c *gin.Context) {
var req service.DeleteAPIRequest
var req dto.DeleteAPIRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -89,7 +90,7 @@ func (h *API) Delete(c *gin.Context) {
Write(c, CodeSuccess, gin.H{}, "删除成功")
}
func (h *API) DeleteByIDs(c *gin.Context) {
var req service.DeleteAPIsRequest
var req dto.DeleteAPIsRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -101,7 +102,7 @@ func (h *API) DeleteByIDs(c *gin.Context) {
Write(c, CodeSuccess, gin.H{}, "删除成功")
}
func (h *API) Find(c *gin.Context) {
var req service.GetAPIRequest
var req dto.GetAPIRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -142,7 +143,7 @@ func (h *API) Roles(c *gin.Context) {
Write(c, CodeSuccess, ids, "获取成功")
}
func (h *API) SetRoles(c *gin.Context) {
var req service.SetAPIRolesRequest
var req dto.SetAPIRolesRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -160,9 +161,9 @@ func (h *API) SetRoles(c *gin.Context) {
func (h *API) Sync(engine *gin.Engine) gin.HandlerFunc {
return func(c *gin.Context) {
routes := engine.Routes()
values := make([]service.APIRequest, 0, len(routes))
values := make([]dto.APIRequest, 0, len(routes))
for _, route := range routes {
values = append(values, service.APIRequest{Path: route.Path, Method: route.Method})
values = append(values, dto.APIRequest{Path: route.Path, Method: route.Method})
}
result, err := h.service.SyncAPIResponses(c.Request.Context(), values)
if err != nil {
@@ -173,7 +174,7 @@ func (h *API) Sync(engine *gin.Engine) gin.HandlerFunc {
}
}
func (h *API) Ignore(c *gin.Context) {
var req service.IgnoreAPIRequest
var req dto.IgnoreAPIRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -185,7 +186,7 @@ func (h *API) Ignore(c *gin.Context) {
OK(c)
}
func (h *API) ApplySync(c *gin.Context) {
var req service.ApplyAPISyncRequest
var req dto.ApplyAPISyncRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -205,7 +206,7 @@ func (h *API) FreshCasbin(c *gin.Context) {
}
func (h *API) SetPolicyPaths(c *gin.Context) {
var req service.SetPolicyPathsRequest
var req dto.SetPolicyPathsRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -221,7 +222,7 @@ func (h *API) SetPolicyPaths(c *gin.Context) {
Write(c, CodeSuccess, gin.H{}, "更新成功")
}
func (h *API) PolicyPaths(c *gin.Context) {
var req service.GetPolicyPathsRequest
var req dto.GetPolicyPathsRequest
if err := c.ShouldBindJSON(&req); err != nil {
Fail(c, err.Error())
return
@@ -238,7 +239,7 @@ func (h *API) PolicyPaths(c *gin.Context) {
Write(c, CodeSuccess, gin.H{"paths": paths}, "获取成功")
}
func validateAPIRequest(req *service.APIRequest) string {
func validateAPIRequest(req *dto.APIRequest) string {
switch {
case req.Path == "":
return "Path值不能为空"