github.com/timoth-y/kicksware-api/order-service@v0.0.0-20201002192818-87b546a7ae5a/container/factory/pipeFactory.go (about) 1 package factory 2 3 import ( 4 "encoding/json" 5 6 "github.com/timoth-y/kicksware-api/search-service/core/pipe" 7 "github.com/timoth-y/kicksware-api/search-service/core/service" 8 searcnEnv "github.com/timoth-y/kicksware-api/search-service/env" 9 "github.com/timoth-y/kicksware-api/search-service/usecase/pipes/REST" 10 "github.com/timoth-y/kicksware-api/search-service/usecase/pipes/gRPC" 11 12 "github.com/timoth-y/kicksware-api/order-service/env" 13 ) 14 15 func ProvideReferenceRESTPipe(auth service.AuthService, config env.ServiceConfig) pipe.SneakerReferencePipe { 16 var searchConfig searcnEnv.ServiceConfig 17 castService(config, &searchConfig) 18 return REST.NewSneakerReferencePipe(auth, searchConfig.Common) 19 } 20 21 func ProvideReferenceGRPCPipe(config env.ServiceConfig) pipe.SneakerReferencePipe { 22 var searchConfig searcnEnv.ServiceConfig 23 castService(config, &searchConfig) 24 return gRPC.NewSneakerReferencePipe(searchConfig) 25 } 26 27 func ProvideProductRESTPipe(config env.ServiceConfig) pipe.SneakerProductPipe { 28 // return pipes.NewSneakerProductPipe(config.Common) 29 panic("ProvideProductRESTPipe: not implemented") 30 } 31 32 func ProvideProductGRPCPipe(config env.ServiceConfig) pipe.SneakerProductPipe { 33 // return pipes.NewSneakerProductPipe(config.Common) 34 panic("ProvideProductGRPCPipe: not implemented") 35 } 36 37 func castService(native interface{}, foreign interface{}) error { 38 bytes, err := json.Marshal(native); if err != nil { 39 return err 40 } 41 json.Unmarshal(bytes, foreign) 42 return nil 43 }