优化结构

This commit is contained in:
Yvan
2026-08-22 12:13:16 +08:00
parent d987244d0e
commit b27a66e9d3
200 changed files with 1794 additions and 1715 deletions
+17 -17
View File
@@ -2,18 +2,18 @@ package service
import (
"context"
"kra/internal/biz/system"
"strings"
"kra/internal/biz"
"kra/internal/service/dto"
)
type APIService struct {
uc *biz.APIUsecase
settings biz.RuntimeSettings
uc *system.APIUsecase
settings system.RuntimeSettings
}
func NewAPIService(uc *biz.APIUsecase, settings biz.RuntimeSettings) *APIService {
func NewAPIService(uc *system.APIUsecase, settings system.RuntimeSettings) *APIService {
return &APIService{uc: uc, settings: settings}
}
@@ -24,15 +24,15 @@ func (s *APIService) NormalizeRoutePath(path string) string {
return NormalizeRoutePath(path, s.settings.RouterPrefix())
}
func (s *APIService) apiDomain(value *dto.APIRequest) *biz.API {
return &biz.API{ID: value.ID, Path: s.NormalizeRoutePath(value.Path), Description: value.Description, APIGroup: value.APIGroup, Method: value.Method}
func (s *APIService) apiDomain(value *dto.APIRequest) *system.API {
return &system.API{ID: value.ID, Path: s.NormalizeRoutePath(value.Path), Description: value.Description, APIGroup: value.APIGroup, Method: value.Method}
}
func apiResponse(value *biz.API) *dto.APIResponse {
func apiResponse(value *system.API) *dto.APIResponse {
return &dto.APIResponse{ID: value.ID, CreatedAt: value.CreatedAt, UpdatedAt: value.UpdatedAt, DeletedAt: nil, Path: value.Path, Description: value.Description, APIGroup: value.APIGroup, Method: value.Method}
}
func apiResponses(items []*biz.API) []*dto.APIResponse {
func apiResponses(items []*system.API) []*dto.APIResponse {
out := make([]*dto.APIResponse, 0, len(items))
for _, item := range items {
out = append(out, apiResponse(item))
@@ -41,7 +41,7 @@ func apiResponses(items []*biz.API) []*dto.APIResponse {
}
func (s *APIService) ListAPI(ctx context.Context, req *dto.APIListRequest) ([]*dto.APIResponse, int64, error) {
items, total, err := s.uc.ListAPIs(ctx, req.Page, req.PageSize, &biz.API{Path: req.Path, Description: req.Description, APIGroup: req.APIGroup, Method: req.Method, OrderKey: req.OrderKey, Desc: req.Desc})
items, total, err := s.uc.ListAPIs(ctx, req.Page, req.PageSize, &system.API{Path: req.Path, Description: req.Description, APIGroup: req.APIGroup, Method: req.Method, OrderKey: req.OrderKey, Desc: req.Desc})
if err != nil {
return nil, 0, err
}
@@ -49,7 +49,7 @@ func (s *APIService) ListAPI(ctx context.Context, req *dto.APIListRequest) ([]*d
}
func (s *APIService) AllAPI(ctx context.Context, strict bool) ([]*dto.APIResponse, error) {
items, _, err := s.uc.ListAPIs(ctx, 0, 0, &biz.API{StrictAll: strict})
items, _, err := s.uc.ListAPIs(ctx, 0, 0, &system.API{StrictAll: strict})
if err != nil {
return nil, err
}
@@ -60,7 +60,7 @@ func (s *APIService) Groups(ctx context.Context) ([]string, map[string]string, e
// The compatible group endpoint uses an unqualified Find, whose natural order is
// the primary-key ascending order. GetAllApis intentionally uses id DESC,
// so do not reuse it here or the group/dropdown order changes.
items, _, err := s.uc.ListAPIs(ctx, 0, 0, &biz.API{OrderKey: "id"})
items, _, err := s.uc.ListAPIs(ctx, 0, 0, &system.API{OrderKey: "id"})
if err != nil {
return nil, nil, err
}
@@ -98,8 +98,8 @@ func (s *APIService) FindAPIResponse(ctx context.Context, id uint) (*dto.APIResp
return apiResponse(value), nil
}
func (s *APIService) ApplyAPISyncRequest(ctx context.Context, req *dto.ApplyAPISyncRequest) error {
added := make([]*biz.API, 0, len(req.NewAPIs))
deleted := make([]*biz.API, 0, len(req.DeleteAPIs))
added := make([]*system.API, 0, len(req.NewAPIs))
deleted := make([]*system.API, 0, len(req.DeleteAPIs))
for i := range req.NewAPIs {
added = append(added, s.apiDomain(&req.NewAPIs[i]))
}
@@ -109,9 +109,9 @@ func (s *APIService) ApplyAPISyncRequest(ctx context.Context, req *dto.ApplyAPIS
return s.uc.ApplyAPISync(ctx, added, deleted)
}
func (s *APIService) SetPolicyPathsRequest(ctx context.Context, req *dto.SetPolicyPathsRequest) error {
paths := make([]*biz.API, 0, len(req.Infos))
paths := make([]*system.API, 0, len(req.Infos))
for _, value := range req.Infos {
paths = append(paths, &biz.API{Path: value.Path, Method: value.Method})
paths = append(paths, &system.API{Path: value.Path, Method: value.Method})
}
return s.uc.SetPolicyPaths(ctx, req.AuthorityID, paths)
}
@@ -130,7 +130,7 @@ func (s *APIService) PolicyPathResponses(ctx context.Context, authorityID uint)
return out, nil
}
func (s *APIService) SyncAPIResponses(ctx context.Context, routes []dto.APIRequest) (*dto.APISyncResponse, error) {
items := make([]*biz.API, 0, len(routes))
items := make([]*system.API, 0, len(routes))
for i := range routes {
routes[i].Path = s.NormalizeRoutePath(routes[i].Path)
// The compatible sync endpoint compares Gin's route table directly, so newly
@@ -156,7 +156,7 @@ func (s *APIService) SetAPIRoles(ctx context.Context, path, method string, ids [
func (s *APIService) FreshCasbin(ctx context.Context) error {
return s.uc.FreshCasbin(ctx)
}
func (s *APIService) SyncAPIs(ctx context.Context, routes []*biz.API) (*dto.APISyncResponse, error) {
func (s *APIService) SyncAPIs(ctx context.Context, routes []*system.API) (*dto.APISyncResponse, error) {
diff, err := s.uc.SyncAPIs(ctx, routes)
if err != nil {
return nil, err