1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- package api
- import (
- "context"
- "github.com/suyuan32/simple-admin-common/i18n"
- "github.com/suyuan32/simple-admin-core/api/internal/svc"
- "github.com/suyuan32/simple-admin-core/api/internal/types"
- "github.com/suyuan32/simple-admin-core/rpc/types/core"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type GetApiListLogic struct {
- logx.Logger
- ctx context.Context
- svcCtx *svc.ServiceContext
- }
- func NewGetApiListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetApiListLogic {
- return &GetApiListLogic{
- Logger: logx.WithContext(ctx),
- ctx: ctx,
- svcCtx: svcCtx,
- }
- }
- func (l *GetApiListLogic) GetApiList(req *types.ApiListReq) (resp *types.ApiListResp, err error) {
- data, err := l.svcCtx.CoreRpc.GetApiList(l.ctx,
- &core.ApiListReq{
- Page: req.Page,
- PageSize: req.PageSize,
- Path: req.Path,
- Description: req.Description,
- Method: req.Method,
- ApiGroup: req.Group,
- ServiceName: req.ServiceName,
- })
- if err != nil {
- return nil, err
- }
- resp = &types.ApiListResp{}
- resp.Msg = l.svcCtx.Trans.Trans(l.ctx, i18n.Success)
- resp.Data.Total = data.GetTotal()
- // Translate api group
- var group = make(map[string]string)
- for _, v := range data.Data {
- // If page size is over 1000, use api group i18n translation. Mainly use in authority list.
- if req.PageSize > 1000 {
- if _, exist := group[*v.ApiGroup]; !exist {
- group[*v.ApiGroup] = l.svcCtx.Trans.Trans(l.ctx, "apiGroup."+*v.ApiGroup)
- }
- *v.ApiGroup = group[*v.ApiGroup]
- }
- resp.Data.Data = append(resp.Data.Data,
- types.ApiInfo{
- BaseIDInfo: types.BaseIDInfo{
- Id: v.Id,
- CreatedAt: v.CreatedAt,
- UpdatedAt: v.UpdatedAt,
- },
- Path: v.Path,
- Trans: l.svcCtx.Trans.Trans(l.ctx, *v.Description),
- Description: v.Description,
- Group: v.ApiGroup,
- Method: v.Method,
- IsRequired: v.IsRequired,
- ServiceName: v.ServiceName,
- })
- }
- return resp, nil
- }
|