api_gateway_service.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package service
  2. import (
  3. "errors"
  4. "xps/datasource"
  5. "xps/repositories"
  6. )
  7. type ApiGatewayService interface {
  8. Get(apiCode string, m map[string]interface{})([]map[string]interface{}, error)
  9. Create(apiCode string, m map[string]interface{})error
  10. Update(apiCode string, m map[string]interface{})error
  11. Patch(apiCode string, m map[string]interface{})error
  12. Delete(apiCode string, m map[string]interface{})error
  13. }
  14. type apiGatewayService struct {
  15. apiRepo *repositories.ApiRepo
  16. apiTransUnitRepo *repositories.ApiTransUnitRepo
  17. objectRepo *repositories.ObjectRepo
  18. objectAttrRepo *repositories.ObjectAttrRepo
  19. dataBus *repositories.DataBusRepo
  20. }
  21. func NewApiGatewayService() ApiGatewayService {
  22. return &apiGatewayService{
  23. apiRepo: repositories.NewApiRepo(datasource.InstanceMaster()),
  24. objectRepo: repositories.NewObjectRepo(datasource.InstanceMaster()),
  25. objectAttrRepo: repositories.NewObjectAttrRepo(datasource.InstanceMaster()),
  26. dataBus: repositories.NewDataBusRepo(datasource.InstanceMaster()),
  27. }
  28. }
  29. func (a apiGatewayService) Get(apiCode string, m map[string]interface{}) ([]map[string]interface{}, error) {
  30. return nil, errors.New("TEST")
  31. }
  32. func (a apiGatewayService) Handle(apiCode string, action int, m map[string]interface{}) error{
  33. apiInfo, err1 := a.apiRepo.GetByCode(apiCode)
  34. if err1 == nil{
  35. return err1
  36. }
  37. apiId := apiInfo.ApiId
  38. atus, err2 := a.apiTransUnitRepo.GetListById(apiId)
  39. if err2 == nil{
  40. return err2
  41. }
  42. for _, atu := range atus {
  43. modelId := atu.ModelId
  44. objectId := atu.ObjectId
  45. objectInfo, err3 := a.objectRepo.GetById(modelId, objectId)
  46. if err3 == nil {
  47. return err3
  48. }
  49. attrs , err4 := a.objectAttrRepo.GetListById(modelId, objectId)
  50. if err4 == nil {
  51. return err4
  52. }
  53. if action == 1 {
  54. err5 := a.dataBus.Create(objectInfo, attrs, m)
  55. if err5 == nil {
  56. return err5
  57. }
  58. }
  59. if action == 2 {
  60. err5 := a.dataBus.Update(objectInfo, attrs, m)
  61. if err5 == nil {
  62. return err5
  63. }
  64. }
  65. if action == 3 {
  66. err5 := a.dataBus.Patch(objectInfo, attrs, m)
  67. if err5 == nil {
  68. return err5
  69. }
  70. }
  71. if action == 4 {
  72. err5 := a.dataBus.Delete(objectInfo, attrs, m)
  73. if err5 == nil {
  74. return err5
  75. }
  76. }
  77. }
  78. return nil
  79. }
  80. func (a apiGatewayService) Create(apiCode string, m map[string]interface{}) error {
  81. return a.Handle(apiCode, 1, m)
  82. }
  83. func (a apiGatewayService) Update(apiCode string, m map[string]interface{}) error {
  84. return a.Handle(apiCode, 2, m)
  85. }
  86. func (a apiGatewayService) Patch(apiCode string, m map[string]interface{}) error {
  87. return a.Handle(apiCode, 3, m)
  88. }
  89. func (a apiGatewayService) Delete(apiCode string, m map[string]interface{}) error {
  90. return a.Handle(apiCode, 4, m)
  91. }