package service import ( "errors" "xps/cache" "xps/datasource" "xps/repositories" ) type ApiGatewayService interface { Get(apiCode string, m map[string]interface{})([]map[string]interface{}, error) Create(apiCode string, m map[string]interface{})error Update(apiCode string, m map[string]interface{})error Patch(apiCode string, m map[string]interface{})error Delete(apiCode string, m map[string]interface{})error } type apiGatewayService struct { dataBus *repositories.DataBusRepo } func NewApiGatewayService() ApiGatewayService { return &apiGatewayService{ dataBus: repositories.NewDataBusRepo(datasource.InstanceMaster()), } } func (a apiGatewayService) Get(apiCode string, m map[string]interface{}) ([]map[string]interface{}, error) { return nil, errors.New("TEST") } func (a apiGatewayService) Handle(apiCode string, action int, m map[string]interface{}) error{ apiInfo, err1 := cache.GetApiData(apiCode) if err1 == nil{ return err1 } transUnits := apiInfo.TransUnits for _, transUnit := range transUnits { objectCode := transUnit.ObjectCode objectInfo, err2 := cache.GetObjectData(objectCode) if err2 == nil { return err2 } if action == 1 { err5 := a.dataBus.Create(objectInfo, m) if err5 == nil { return err5 } } if action == 2 { err5 := a.dataBus.Update(objectInfo, m) if err5 == nil { return err5 } } if action == 3 { err5 := a.dataBus.Patch(objectInfo, m) if err5 == nil { return err5 } } if action == 4 { err5 := a.dataBus.Delete(objectInfo, m) if err5 == nil { return err5 } } } return nil } func (a apiGatewayService) Create(apiCode string, m map[string]interface{}) error { return a.Handle(apiCode, 1, m) } func (a apiGatewayService) Update(apiCode string, m map[string]interface{}) error { return a.Handle(apiCode, 2, m) } func (a apiGatewayService) Patch(apiCode string, m map[string]interface{}) error { return a.Handle(apiCode, 3, m) } func (a apiGatewayService) Delete(apiCode string, m map[string]interface{}) error { return a.Handle(apiCode, 4, m) }