Files
PandaX/apps/system/api/api.go
2024-06-06 20:46:35 +08:00

75 lines
2.1 KiB
Go

package api
import (
entity "pandax/apps/system/entity"
services "pandax/apps/system/services"
"pandax/kit/biz"
"pandax/kit/casbin"
"pandax/kit/model"
"pandax/kit/restfulx"
"pandax/kit/utils"
"pandax/pkg/global"
)
type SystemApiApi struct {
ApiApp services.SysApiModel
}
func (s *SystemApiApi) CreateApi(rc *restfulx.ReqCtx) {
var api entity.SysApi
restfulx.BindJsonAndValid(rc, &api)
_, err := s.ApiApp.Insert(api)
biz.ErrIsNil(err, "添加APi失败")
}
func (s *SystemApiApi) DeleteApi(rc *restfulx.ReqCtx) {
ids := rc.Request.PathParameter("id")
err := s.ApiApp.Delete(utils.IdsStrToIdsIntGroup(ids))
biz.ErrIsNil(err, "删除APi失败")
}
func (s *SystemApiApi) GetApiList(rc *restfulx.ReqCtx) {
pageNum := restfulx.QueryInt(rc, "pageNum", 1)
pageSize := restfulx.QueryInt(rc, "pageSize", 10)
path := rc.Request.QueryParameter("path")
description := rc.Request.QueryParameter("description")
method := rc.Request.QueryParameter("method")
apiGroup := rc.Request.QueryParameter("apiGroup")
api := entity.SysApi{Path: path, Description: description, Method: method, ApiGroup: apiGroup}
list, total, err := s.ApiApp.FindListPage(pageNum, pageSize, api)
biz.ErrIsNil(err, "查询APi分页列表失败")
rc.ResData = model.ResultPage{
Total: total,
PageNum: int64(pageNum),
PageSize: int64(pageSize),
Data: list,
}
}
func (s *SystemApiApi) GetApiById(rc *restfulx.ReqCtx) {
id := restfulx.QueryInt(rc, "id", 0)
data, err := s.ApiApp.FindOne(int64(id))
biz.ErrIsNil(err, "查询APi失败")
rc.ResData = data
}
func (s *SystemApiApi) UpdateApi(rc *restfulx.ReqCtx) {
var api entity.SysApi
restfulx.BindJsonAndValid(rc, &api)
err := s.ApiApp.Update(api)
biz.ErrIsNil(err, "查询APi失败")
}
func (s *SystemApiApi) GetAllApis(rc *restfulx.ReqCtx) {
data, err := s.ApiApp.FindList(entity.SysApi{})
biz.ErrIsNil(err, "查询APi列表失败")
rc.ResData = data
}
func (s *SystemApiApi) GetPolicyPathByRoleId(rc *restfulx.ReqCtx) {
roleKey := rc.Request.QueryParameter("roleKey")
ca := casbin.CasbinService{ModelPath: global.Conf.Casbin.ModelPath}
rc.ResData = ca.GetPolicyPathByRoleId(roleKey)
}