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