api_gateway_controller.go 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package controllers
  2. import (
  3. "github.com/kataras/iris/v12/mvc"
  4. "xps/cache"
  5. "xps/constant"
  6. "xps/service"
  7. "xps/viewmodels"
  8. )
  9. type ApiGatewayController struct {
  10. Base
  11. Service service.ApiGatewayService
  12. }
  13. func (c *ApiGatewayController) BeforeActivation(b mvc.BeforeActivation) {
  14. b.Handle("GET", "/{objectCode:string}/{oamCode:string}", "Get" )
  15. b.Handle("GET", "/GenerateParams/{objectCode:string}/{oamCode:string}", "GetParams" )
  16. b.Handle("POST", "/{objectCode:string}/{oamCode:string}", "Post" )
  17. b.Handle("PUT", "/{objectCode:string}/{oamCode:string}", "Put" )
  18. b.Handle("PATCH", "/{objectCode:string}/{oamCode:string}", "Patch" )
  19. b.Handle("DELETE", "/{objectCode:string}/{oamCode:string}", "Delete" )
  20. }
  21. func (c *ApiGatewayController) GetParams(objectCode, oamCode string)*JsonResult {
  22. data, err := c.Service.GetParams(objectCode, oamCode)
  23. if err != nil {
  24. return ResultErr(err.Error(), nil)
  25. } else {
  26. return ResultOk("获取成功", data)
  27. }
  28. }
  29. func (c *ApiGatewayController) Get(objectCode, oamCode string)*JsonResult {
  30. oamInfo, err := cache.GetApiData(objectCode, oamCode)
  31. if err != nil {
  32. return ResultErr(err.Error(), nil)
  33. }
  34. m := c.buildParams()
  35. oamType := oamInfo.OamType
  36. if oamType == constant.OAM_GET_ONE {
  37. data, err := c.Service.Get(objectCode, oamCode, m)
  38. if err != nil {
  39. return ResultErr(err.Error(), nil)
  40. } else {
  41. return ResultOk("获取成功", data)
  42. }
  43. }
  44. if oamType == constant.OAM_GET_LIST{
  45. data, err := c.Service.GetList(objectCode, oamCode, m)
  46. if err != nil {
  47. return ResultErr(err.Error(), nil)
  48. } else {
  49. return ResultOk("获取成功", data)
  50. }
  51. }
  52. if oamType == constant.OAM_GET_PAGE {
  53. data, err := c.Service.GetPage(objectCode, oamCode, m)
  54. if err != nil {
  55. return ResultErr(err.Error(), nil)
  56. } else {
  57. return ResultOk("获取成功", data)
  58. }
  59. }
  60. return ResultErr("方法不存在", nil)
  61. }
  62. func (c *ApiGatewayController) Post(objectCode, oamCode string)*JsonResult {
  63. m, err := c.GetJsonData()
  64. if err != nil {
  65. return ResultErr(err.Error(), nil)
  66. }
  67. userInfo := &viewmodels.CurUserInfo{
  68. UserId: c.GetCurUserId(),
  69. UserName: c.GetCurUserName(),
  70. PositionId: c.GetCurUserPositionId(),
  71. PositionName: c.GetCurUserPositionName(),
  72. GroupId: c.GetCurUserGroupId(),
  73. GroupName: c.GetCurUserGroupName(),
  74. }
  75. err = c.Service.Create(objectCode, oamCode, m, userInfo)
  76. if err != nil {
  77. return ResultErr(err.Error(), nil)
  78. } else {
  79. return ResultOk("创建成功", nil)
  80. }
  81. }
  82. func (c *ApiGatewayController) Put(objectCode, oamCode string)*JsonResult {
  83. m, err := c.GetJsonData()
  84. if err != nil {
  85. return ResultErr(err.Error(), nil)
  86. }
  87. userInfo := &viewmodels.CurUserInfo{
  88. UserId: c.GetCurUserId(),
  89. UserName: c.GetCurUserName(),
  90. PositionId: c.GetCurUserPositionId(),
  91. PositionName: c.GetCurUserPositionName(),
  92. GroupId: c.GetCurUserGroupId(),
  93. GroupName: c.GetCurUserGroupName(),
  94. }
  95. err = c.Service.Update(objectCode, oamCode, m, userInfo)
  96. if err != nil {
  97. return ResultErr(err.Error(), nil)
  98. } else {
  99. return ResultOk("更新成功", nil)
  100. }
  101. }
  102. func (c *ApiGatewayController) Patch(objectCode, oamCode string)*JsonResult {
  103. m, err := c.GetJsonData()
  104. if err != nil {
  105. return ResultErr(err.Error(), nil)
  106. }
  107. userInfo := &viewmodels.CurUserInfo{
  108. UserId: c.GetCurUserId(),
  109. UserName: c.GetCurUserName(),
  110. PositionId: c.GetCurUserPositionId(),
  111. PositionName: c.GetCurUserPositionName(),
  112. GroupId: c.GetCurUserGroupId(),
  113. GroupName: c.GetCurUserGroupName(),
  114. }
  115. err = c.Service.Patch(objectCode, oamCode, m, userInfo)
  116. if err != nil {
  117. return ResultErr(err.Error(), nil)
  118. } else {
  119. return ResultOk("更新成功", nil)
  120. }
  121. }
  122. func (c *ApiGatewayController) Delete(objectCode, oamCode string)*JsonResult {
  123. m, err := c.GetJsonData()
  124. if err != nil {
  125. return ResultErr(err.Error(), nil)
  126. }
  127. userInfo := &viewmodels.CurUserInfo{
  128. UserId: c.GetCurUserId(),
  129. UserName: c.GetCurUserName(),
  130. PositionId: c.GetCurUserPositionId(),
  131. PositionName: c.GetCurUserPositionName(),
  132. GroupId: c.GetCurUserGroupId(),
  133. GroupName: c.GetCurUserGroupName(),
  134. }
  135. err = c.Service.Delete(objectCode, oamCode, m, userInfo)
  136. if err != nil {
  137. return ResultErr(err.Error(), nil)
  138. } else {
  139. return ResultOk("删除成功", nil)
  140. }
  141. }