Files
hm-server/app/main/api/internal/logic/admin_api/admingetapidetaillogic.go
2025-09-30 17:44:18 +08:00

62 lines
1.6 KiB
Go

package admin_api
import (
"context"
"tydata-server/app/main/api/internal/svc"
"tydata-server/app/main/api/internal/types"
"tydata-server/app/main/model"
"tydata-server/common/xerr"
"github.com/pkg/errors"
"github.com/zeromicro/go-zero/core/logx"
)
type AdminGetApiDetailLogic struct {
logx.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
func NewAdminGetApiDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AdminGetApiDetailLogic {
return &AdminGetApiDetailLogic{
Logger: logx.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *AdminGetApiDetailLogic) AdminGetApiDetail(req *types.AdminGetApiDetailReq) (resp *types.AdminGetApiDetailResp, err error) {
// 1. 参数验证
if req.Id <= 0 {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.PARAM_VERIFICATION_ERROR),
"API ID必须大于0, id: %d", req.Id)
}
// 2. 查询API详情
api, err := l.svcCtx.AdminApiModel.FindOne(l.ctx, req.Id)
if err != nil {
if errors.Is(err, model.ErrNotFound) {
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR),
"API不存在, id: %d", req.Id)
}
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DB_ERROR),
"查询API详情失败, err: %v, id: %d", err, req.Id)
}
// 3. 返回结果
return &types.AdminGetApiDetailResp{
AdminApiInfo: types.AdminApiInfo{
Id: api.Id,
ApiName: api.ApiName,
ApiCode: api.ApiCode,
Method: api.Method,
Url: api.Url,
Status: api.Status,
Description: api.Description,
CreateTime: api.CreateTime.Format("2006-01-02 15:04:05"),
UpdateTime: api.UpdateTime.Format("2006-01-02 15:04:05"),
},
}, nil
}