customer/internal/initialize/repositories.go

38 lines
1.1 KiB
Go
Raw Normal View History

2023-05-16 01:12:07 +00:00
package initialize
import (
"go.mongodb.org/mongo-driver/mongo"
2023-05-17 20:27:09 +00:00
"go.uber.org/zap"
"penahub.gitlab.yandexcloud.net/pena-services/customer/internal/interface/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-23 15:33:23 +00:00
HistoryRepository *repository.HistoryRepository
2023-05-16 01:12:07 +00:00
}
func NewRepositories(deps *RepositoriesDeps) *Repositories {
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-23 15:33:23 +00:00
HistoryRepository: repository.NewHistoryRepository(&repository.HistoryRepositoryDeps{
Logger: deps.Logger,
MongoDB: deps.MongoDB.Collection("histories"),
}),
2023-05-16 01:12:07 +00:00
}
}