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  }