treasurer/internal/initialize/repositories.go

36 lines
963 B
Go

package initialize
import (
"gitea.pena/PenaSide/treasurer/internal/errors"
"gitea.pena/PenaSide/treasurer/internal/repository"
"go.mongodb.org/mongo-driver/mongo"
"go.uber.org/zap"
)
type RepositoriesDeps struct {
Logger *zap.Logger
Database *mongo.Database
}
type Repositories struct {
Payment *repository.PaymentRepository
PaymentMethod *repository.PaymentMethodRepository
}
func NewRepositories(deps RepositoriesDeps) (*Repositories, errors.Error) {
paymentRepository, err := repository.NewPaymentRepository(repository.PaymentRepositoryDeps{
Logger: deps.Logger,
Collection: deps.Database.Collection("payments"),
})
if err != nil {
return nil, err
}
paymentMethod := repository.NewPaymentMethodRepository(repository.PaymentMethodRepositoryDeps{
Logger: deps.Logger,
Collection: deps.Database.Collection("payment_methods"),
})
return &Repositories{Payment: paymentRepository, PaymentMethod: paymentMethod}, nil
}