customer/internal/initialize/repositories.go

47 lines
1.1 KiB
Go
Raw Normal View History

2023-05-16 01:12:07 +00:00
package initialize
import (
2023-05-19 04:50:40 +00:00
"log"
2023-05-16 01:12:07 +00:00
"go.mongodb.org/mongo-driver/mongo"
2023-05-17 20:27:09 +00:00
"go.uber.org/zap"
2023-05-16 04:01:55 +00:00
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/repository"
2023-05-16 01:12:07 +00:00
)
type RepositoriesDeps struct {
2023-05-17 20:27:09 +00:00
Logger *zap.Logger
2023-05-19 04:50:40 +00:00
MongoDB *mongo.Database
2023-05-16 01:12:07 +00:00
}
type Repositories struct {
2023-05-19 04:50:40 +00:00
HealthRepository *repository.HealthRepository
AccountRepository *repository.AccountRepository
CurrencyRepository *repository.CurrencyRepository
2023-05-16 01:12:07 +00:00
}
func NewRepositories(deps *RepositoriesDeps) *Repositories {
2023-05-19 04:50:40 +00:00
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>")
}
2023-05-16 01:12:07 +00:00
return &Repositories{
HealthRepository: repository.NewHealthRepository(deps.MongoDB),
2023-05-17 20:27:09 +00:00
AccountRepository: repository.NewAccountRepository(&repository.AccountRepositoryDeps{
2023-05-19 04:50:40 +00:00
Logger: deps.Logger,
2023-05-17 20:27:09 +00:00
MongoDB: deps.MongoDB.Collection("accounts"),
2023-05-19 04:50:40 +00:00
}),
CurrencyRepository: repository.NewCurrencyRepository(&repository.CurrencyRepositoryDeps{
2023-05-17 20:27:09 +00:00
Logger: deps.Logger,
2023-05-19 04:50:40 +00:00
MongoDB: deps.MongoDB.Collection("currency_lists"),
2023-05-17 20:27:09 +00:00
}),
2023-05-16 01:12:07 +00:00
}
}