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 }