api_gateway_service.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package service
  2. import (
  3. "errors"
  4. "xps/cache"
  5. "xps/datasource"
  6. "xps/repositories"
  7. )
  8. type ApiGatewayService interface {
  9. Get(apiCode string, m map[string]interface{})([]map[string]interface{}, error)
  10. Create(apiCode string, m map[string]interface{})error
  11. Update(apiCode string, m map[string]interface{})error
  12. Patch(apiCode string, m map[string]interface{})error
  13. Delete(apiCode string, m map[string]interface{})error
  14. }
  15. type apiGatewayService struct {
  16. dataBus *repositories.DataBusRepo
  17. }
  18. func NewApiGatewayService() ApiGatewayService {
  19. return &apiGatewayService{
  20. dataBus: repositories.NewDataBusRepo(datasource.InstanceMaster()),
  21. }
  22. }
  23. func (a apiGatewayService) Get(apiCode string, m map[string]interface{}) ([]map[string]interface{}, error) {
  24. return nil, errors.New("TEST")
  25. }
  26. func (a apiGatewayService) Handle(apiCode string, action int, m map[string]interface{}) error{
  27. apiInfo, err1 := cache.GetApiData(apiCode)
  28. if err1 == nil{
  29. return err1
  30. }
  31. transUnits := apiInfo.TransUnits
  32. for _, transUnit := range transUnits {
  33. objectCode := transUnit.ObjectCode
  34. objectInfo, err2 := cache.GetObjectData(objectCode)
  35. if err2 == nil {
  36. return err2
  37. }
  38. if action == 1 {
  39. err5 := a.dataBus.Create(objectInfo, m)
  40. if err5 == nil {
  41. return err5
  42. }
  43. }
  44. if action == 2 {
  45. err5 := a.dataBus.Update(objectInfo, m)
  46. if err5 == nil {
  47. return err5
  48. }
  49. }
  50. if action == 3 {
  51. err5 := a.dataBus.Patch(objectInfo, m)
  52. if err5 == nil {
  53. return err5
  54. }
  55. }
  56. if action == 4 {
  57. err5 := a.dataBus.Delete(objectInfo, m)
  58. if err5 == nil {
  59. return err5
  60. }
  61. }
  62. }
  63. return nil
  64. }
  65. func (a apiGatewayService) Create(apiCode string, m map[string]interface{}) error {
  66. return a.Handle(apiCode, 1, m)
  67. }
  68. func (a apiGatewayService) Update(apiCode string, m map[string]interface{}) error {
  69. return a.Handle(apiCode, 2, m)
  70. }
  71. func (a apiGatewayService) Patch(apiCode string, m map[string]interface{}) error {
  72. return a.Handle(apiCode, 3, m)
  73. }
  74. func (a apiGatewayService) Delete(apiCode string, m map[string]interface{}) error {
  75. return a.Handle(apiCode, 4, m)
  76. }