generated from PenaSide/GolangTemplate
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package initialize
|
|
|
|
import (
|
|
"log"
|
|
|
|
"go.mongodb.org/mongo-driver/mongo"
|
|
"go.uber.org/zap"
|
|
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/repository"
|
|
)
|
|
|
|
type RepositoriesDeps struct {
|
|
Logger *zap.Logger
|
|
MongoDB *mongo.Database
|
|
}
|
|
|
|
type Repositories struct {
|
|
HealthRepository *repository.HealthRepository
|
|
AccountRepository *repository.AccountRepository
|
|
CurrencyRepository *repository.CurrencyRepository
|
|
}
|
|
|
|
func NewRepositories(deps *RepositoriesDeps) *Repositories {
|
|
if deps == nil {
|
|
log.Panicln("deps is nil on <NewRepositories>")
|
|
}
|
|
|
|
if deps.Logger == nil {
|
|
log.Panicln("logger is nil on <NewRepositories>")
|
|
}
|
|
|
|
if deps.MongoDB == nil {
|
|
log.Panicln("mongodb is nil on <NewRepositories>")
|
|
}
|
|
|
|
return &Repositories{
|
|
HealthRepository: repository.NewHealthRepository(deps.MongoDB),
|
|
AccountRepository: repository.NewAccountRepository(&repository.AccountRepositoryDeps{
|
|
Logger: deps.Logger,
|
|
MongoDB: deps.MongoDB.Collection("accounts"),
|
|
}),
|
|
CurrencyRepository: repository.NewCurrencyRepository(&repository.CurrencyRepositoryDeps{
|
|
Logger: deps.Logger,
|
|
MongoDB: deps.MongoDB.Collection("currency_lists"),
|
|
}),
|
|
}
|
|
}
|