github.com/timoth-y/kicksware-api/order-service@v0.0.0-20201002192818-87b546a7ae5a/container/factory/repositoryFactory.go (about) 1 package factory 2 3 import ( 4 "log" 5 6 "github.com/timoth-y/kicksware-api/order-service/core/repo" 7 "github.com/timoth-y/kicksware-api/order-service/env" 8 "github.com/timoth-y/kicksware-api/order-service/usecase/storage/mongo" 9 "github.com/timoth-y/kicksware-api/order-service/usecase/storage/postgres" 10 ) 11 12 func ProvideRepository(config env.ServiceConfig) repo.OrderRepository { 13 switch config.Common.UsedDB { 14 case "mongo": 15 repo, err := mongo.NewRepository(config.Mongo); if err != nil { 16 log.Fatal(err) 17 } 18 return repo 19 case "postgres": 20 repo, err := postgres.NewRepository(config.Postgres); if err != nil { 21 log.Fatal(err) 22 } 23 return repo 24 } 25 return nil 26 }