customer/internal/initialize/repositories.go

38 lines
1.1 KiB
Go
Raw Normal View History

2023-06-22 09:36:43 +00:00
package initialize
import (
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/repository"
)
type RepositoriesDeps struct {
Logger *zap.Logger
MongoDB *mongo.Database
}
type Repositories struct {
HealthRepository *repository.HealthRepository
AccountRepository *repository.AccountRepository
CurrencyRepository *repository.CurrencyRepository
HistoryRepository *repository.HistoryRepository
}
func NewRepositories(deps RepositoriesDeps) *Repositories {
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"),
}),
HistoryRepository: repository.NewHistoryRepository(repository.HistoryRepositoryDeps{
Logger: deps.Logger,
MongoDB: deps.MongoDB.Collection("histories"),
}),
}
}