api_gateway_controller.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package controllers
  2. import (
  3. "github.com/kataras/iris/v12/mvc"
  4. "xps/cache"
  5. "xps/constant"
  6. "xps/service"
  7. )
  8. type ApiGatewayController struct {
  9. Base
  10. Service service.ApiGatewayService
  11. }
  12. func (c *ApiGatewayController) BeforeActivation(b mvc.BeforeActivation) {
  13. b.Handle("GET", "/{objectCode:string}/{oamCode:string}", "Get" )
  14. b.Handle("POST", "/{objectCode:string}/{oamCode:string}", "Post" )
  15. b.Handle("PUT", "/{objectCode:string}/{oamCode:string}", "Put" )
  16. b.Handle("PATCH", "/{objectCode:string}/{oamCode:string}", "Patch" )
  17. b.Handle("DELETE", "/{objectCode:string}/{oamCode:string}", "Delete" )
  18. }
  19. func (c *ApiGatewayController) Get(objectCode, oamCode string)*JsonResult {
  20. oamInfo, err := cache.GetApiData(objectCode, oamCode)
  21. if err != nil {
  22. return ResultErr(err.Error(), nil)
  23. }
  24. m := c.buildParams()
  25. oamType := oamInfo.OamType
  26. if oamType == constant.OAM_GET_ONE {
  27. data, err := c.Service.Get(objectCode, oamCode, m)
  28. if err != nil {
  29. return ResultErr(err.Error(), nil)
  30. } else {
  31. return ResultOk("获取成功", data)
  32. }
  33. }
  34. if oamType == constant.OAM_GET_LIST{
  35. data, err := c.Service.GetList(objectCode, oamCode, m)
  36. if err != nil {
  37. return ResultErr(err.Error(), nil)
  38. } else {
  39. return ResultOk("获取成功", data)
  40. }
  41. }
  42. if oamType == constant.OAM_GET_PAGE {
  43. data, err := c.Service.GetPage(objectCode, oamCode, m)
  44. if err != nil {
  45. return ResultErr(err.Error(), nil)
  46. } else {
  47. return ResultOk("获取成功", data)
  48. }
  49. }
  50. return ResultErr("方法不存在", nil)
  51. }
  52. func (c *ApiGatewayController) Post(objectCode, oamCode string)*JsonResult {
  53. m, err := c.GetJsonData()
  54. if err != nil {
  55. return ResultErr(err.Error(), nil)
  56. }
  57. err = c.Service.Create(objectCode, oamCode, m)
  58. if err != nil {
  59. return ResultErr(err.Error(), nil)
  60. } else {
  61. return ResultOk("创建成功", nil)
  62. }
  63. }
  64. func (c *ApiGatewayController) Put(objectCode, oamCode string)*JsonResult {
  65. m, err := c.GetJsonData()
  66. if err != nil {
  67. return ResultErr(err.Error(), nil)
  68. }
  69. err = c.Service.Update(objectCode, oamCode, m)
  70. if err != nil {
  71. return ResultErr(err.Error(), nil)
  72. } else {
  73. return ResultOk("更新成功", nil)
  74. }
  75. }
  76. func (c *ApiGatewayController) Patch(objectCode, oamCode string)*JsonResult {
  77. m, err := c.GetJsonData()
  78. if err != nil {
  79. return ResultErr(err.Error(), nil)
  80. }
  81. err = c.Service.Patch(objectCode, oamCode, m)
  82. if err != nil {
  83. return ResultErr(err.Error(), nil)
  84. } else {
  85. return ResultOk("更新成功", nil)
  86. }
  87. }
  88. func (c *ApiGatewayController) Delete(objectCode, oamCode string)*JsonResult {
  89. m, err := c.GetJsonData()
  90. if err != nil {
  91. return ResultErr(err.Error(), nil)
  92. }
  93. err = c.Service.Delete(objectCode, oamCode, m)
  94. if err != nil {
  95. return ResultErr(err.Error(), nil)
  96. } else {
  97. return ResultOk("删除成功", nil)
  98. }
  99. }