heruvym/internal/initialize/repository.go

46 lines
936 B
Go
Raw Normal View History

2024-09-25 14:22:57 +00:00
package initialize
import (
"context"
minioClient "github.com/minio/minio-go/v7"
"github.com/themakers/hlog"
mongoDatabase "go.mongodb.org/mongo-driver/mongo"
"heruvym/internal/repository/minio"
"heruvym/internal/repository/mongo"
)
type DepsRepositories struct {
MinioClient *minioClient.Client
MongoDatabase *mongoDatabase.Database
Cfg Config
HLogger hlog.Logger
}
type Repositories struct {
Minio *minio.BlobStore
Mongo *mongo.DAL
}
func NewRepositories(ctx context.Context, deps DepsRepositories) (*Repositories, error) {
minioRepo, err := minio.New(ctx, minio.Deps{
HLogger: deps.HLogger,
Store: deps.MinioClient,
})
if err != nil {
return nil, err
}
mongoRepo, err := mongo.New(ctx, mongo.DepsDAL{
MongoDatabase: deps.MongoDatabase,
HLogger: deps.HLogger,
})
if err != nil {
return nil, err
}
return &Repositories{
Minio: minioRepo,
Mongo: mongoRepo,
}, nil
}