package initialize import ( "context" "go.mongodb.org/mongo-driver/mongo" mdb "penahub.gitlab.yandexcloud.net/backend/penahub_common/mongo" "time" ) func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { dbConfig := &mdb.Configuration{ Host: cfg.MongoHost, Port: cfg.MongoPort, User: cfg.MongoUser, Password: cfg.MongoPassword, DatabaseName: cfg.MongoDatabase, Auth: cfg.MongoAuth, } newCtx, cancel := context.WithTimeout(ctx, 10*time.Second) defer cancel() mongoDeps := &mdb.ConnectDeps{ Configuration: dbConfig, Timeout: 10 * time.Second, } db, err := mdb.Connect(newCtx, mongoDeps) if err != nil { return nil, err } err = db.Client().Ping(newCtx, nil) if err != nil { return nil, err } return db, nil }