| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- package system
- import (
- "github.com/flipped-aurora/gin-vue-admin/server/global"
- "github.com/flipped-aurora/gin-vue-admin/server/model/common/request"
- "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
- "github.com/flipped-aurora/gin-vue-admin/server/model/system"
- systemReq "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
- systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
- "github.com/flipped-aurora/gin-vue-admin/server/utils"
- "github.com/gin-gonic/gin"
- "go.uber.org/zap"
- )
- type SystemApiApi struct{}
- // CreateApi
- // @Tags SysApi
- // @Summary 创建基础api
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body system.SysApi true "api路径, api中文描述, api组, 方法"
- // @Success 200 {object} response.Response{msg=string} "创建基础api"
- // @Router /api/createApi [post]
- func (s *SystemApiApi) CreateApi(c *gin.Context) {
- var api system.SysApi
- err := c.ShouldBindJSON(&api)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = utils.Verify(api, utils.ApiVerify)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.CreateApi(api)
- if err != nil {
- global.GVA_LOG.Error("创建失败!", zap.Error(err))
- response.FailWithMessage("创建失败", c)
- return
- }
- response.OkWithMessage("创建成功", c)
- }
- // SyncApi
- // @Tags SysApi
- // @Summary 同步API
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{msg=string} "同步API"
- // @Router /api/syncApi [get]
- func (s *SystemApiApi) SyncApi(c *gin.Context) {
- newApis, deleteApis, ignoreApis, err := apiService.SyncApi()
- if err != nil {
- global.GVA_LOG.Error("同步失败!", zap.Error(err))
- response.FailWithMessage("同步失败", c)
- return
- }
- response.OkWithData(gin.H{
- "newApis": newApis,
- "deleteApis": deleteApis,
- "ignoreApis": ignoreApis,
- }, c)
- }
- // GetApiGroups
- // @Tags SysApi
- // @Summary 获取API分组
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{msg=string} "获取API分组"
- // @Router /api/getApiGroups [get]
- func (s *SystemApiApi) GetApiGroups(c *gin.Context) {
- groups, apiGroupMap, err := apiService.GetApiGroups()
- if err != nil {
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- response.FailWithMessage("获取失败", c)
- return
- }
- response.OkWithData(gin.H{
- "groups": groups,
- "apiGroupMap": apiGroupMap,
- }, c)
- }
- // IgnoreApi
- // @Tags IgnoreApi
- // @Summary 忽略API
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{msg=string} "同步API"
- // @Router /api/ignoreApi [post]
- func (s *SystemApiApi) IgnoreApi(c *gin.Context) {
- var ignoreApi system.SysIgnoreApi
- err := c.ShouldBindJSON(&ignoreApi)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.IgnoreApi(ignoreApi)
- if err != nil {
- global.GVA_LOG.Error("忽略失败!", zap.Error(err))
- response.FailWithMessage("忽略失败", c)
- return
- }
- response.Ok(c)
- }
- // EnterSyncApi
- // @Tags SysApi
- // @Summary 确认同步API
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{msg=string} "确认同步API"
- // @Router /api/enterSyncApi [post]
- func (s *SystemApiApi) EnterSyncApi(c *gin.Context) {
- var syncApi systemRes.SysSyncApis
- err := c.ShouldBindJSON(&syncApi)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.EnterSyncApi(syncApi)
- if err != nil {
- global.GVA_LOG.Error("忽略失败!", zap.Error(err))
- response.FailWithMessage("忽略失败", c)
- return
- }
- response.Ok(c)
- }
- // DeleteApi
- // @Tags SysApi
- // @Summary 删除api
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body system.SysApi true "ID"
- // @Success 200 {object} response.Response{msg=string} "删除api"
- // @Router /api/deleteApi [post]
- func (s *SystemApiApi) DeleteApi(c *gin.Context) {
- var api system.SysApi
- err := c.ShouldBindJSON(&api)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = utils.Verify(api.GVA_MODEL, utils.IdVerify)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.DeleteApi(api)
- if err != nil {
- global.GVA_LOG.Error("删除失败!", zap.Error(err))
- response.FailWithMessage("删除失败", c)
- return
- }
- response.OkWithMessage("删除成功", c)
- }
- // GetApiList
- // @Tags SysApi
- // @Summary 分页获取API列表
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body systemReq.SearchApiParams true "分页获取API列表"
- // @Success 200 {object} response.Response{data=response.PageResult,msg=string} "分页获取API列表,返回包括列表,总数,页码,每页数量"
- // @Router /api/getApiList [post]
- func (s *SystemApiApi) GetApiList(c *gin.Context) {
- var pageInfo systemReq.SearchApiParams
- err := c.ShouldBindJSON(&pageInfo)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = utils.Verify(pageInfo.PageInfo, utils.PageInfoVerify)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- list, total, err := apiService.GetAPIInfoList(pageInfo.SysApi, pageInfo.PageInfo, pageInfo.OrderKey, pageInfo.Desc)
- if err != nil {
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- response.FailWithMessage("获取失败", c)
- return
- }
- response.OkWithDetailed(response.PageResult{
- List: list,
- Total: total,
- Page: pageInfo.Page,
- PageSize: pageInfo.PageSize,
- }, "获取成功", c)
- }
- // GetApiById
- // @Tags SysApi
- // @Summary 根据id获取api
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body request.GetById true "根据id获取api"
- // @Success 200 {object} response.Response{data=systemRes.SysAPIResponse} "根据id获取api,返回包括api详情"
- // @Router /api/getApiById [post]
- func (s *SystemApiApi) GetApiById(c *gin.Context) {
- var idInfo request.GetById
- err := c.ShouldBindJSON(&idInfo)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = utils.Verify(idInfo, utils.IdVerify)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- api, err := apiService.GetApiById(idInfo.ID)
- if err != nil {
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- response.FailWithMessage("获取失败", c)
- return
- }
- response.OkWithDetailed(systemRes.SysAPIResponse{Api: api}, "获取成功", c)
- }
- // UpdateApi
- // @Tags SysApi
- // @Summary 修改基础api
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body system.SysApi true "api路径, api中文描述, api组, 方法"
- // @Success 200 {object} response.Response{msg=string} "修改基础api"
- // @Router /api/updateApi [post]
- func (s *SystemApiApi) UpdateApi(c *gin.Context) {
- var api system.SysApi
- err := c.ShouldBindJSON(&api)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = utils.Verify(api, utils.ApiVerify)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.UpdateApi(api)
- if err != nil {
- global.GVA_LOG.Error("修改失败!", zap.Error(err))
- response.FailWithMessage("修改失败", c)
- return
- }
- response.OkWithMessage("修改成功", c)
- }
- // GetAllApis
- // @Tags SysApi
- // @Summary 获取所有的Api 不分页
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{data=systemRes.SysAPIListResponse,msg=string} "获取所有的Api 不分页,返回包括api列表"
- // @Router /api/getAllApis [post]
- func (s *SystemApiApi) GetAllApis(c *gin.Context) {
- authorityID := utils.GetUserAuthorityId(c)
- apis, err := apiService.GetAllApis(authorityID)
- if err != nil {
- global.GVA_LOG.Error("获取失败!", zap.Error(err))
- response.FailWithMessage("获取失败", c)
- return
- }
- response.OkWithDetailed(systemRes.SysAPIListResponse{Apis: apis}, "获取成功", c)
- }
- // DeleteApisByIds
- // @Tags SysApi
- // @Summary 删除选中Api
- // @Security ApiKeyAuth
- // @accept application/json
- // @Produce application/json
- // @Param data body request.IdsReq true "ID"
- // @Success 200 {object} response.Response{msg=string} "删除选中Api"
- // @Router /api/deleteApisByIds [delete]
- func (s *SystemApiApi) DeleteApisByIds(c *gin.Context) {
- var ids request.IdsReq
- err := c.ShouldBindJSON(&ids)
- if err != nil {
- response.FailWithMessage(err.Error(), c)
- return
- }
- err = apiService.DeleteApisByIds(ids)
- if err != nil {
- global.GVA_LOG.Error("删除失败!", zap.Error(err))
- response.FailWithMessage("删除失败", c)
- return
- }
- response.OkWithMessage("删除成功", c)
- }
- // FreshCasbin
- // @Tags SysApi
- // @Summary 刷新casbin缓存
- // @accept application/json
- // @Produce application/json
- // @Success 200 {object} response.Response{msg=string} "刷新成功"
- // @Router /api/freshCasbin [get]
- func (s *SystemApiApi) FreshCasbin(c *gin.Context) {
- err := casbinService.FreshCasbin()
- if err != nil {
- global.GVA_LOG.Error("刷新失败!", zap.Error(err))
- response.FailWithMessage("刷新失败", c)
- return
- }
- response.OkWithMessage("刷新成功", c)
- }
|