package initialize import ( mdb "codeword/pkg/mongo" "context" "go.mongodb.org/mongo-driver/mongo" "time" ) func MongoDB(ctx context.Context, cfg Config) (*mongo.Database, error) { dbConfig := &mdb.Configuration{ MongoHost: cfg.MongoHost, MongoPort: cfg.MongoPort, MongoUser: cfg.MongoUser, MongoPassword: cfg.MongoPassword, MongoDatabase: cfg.MongoDatabase, MongoAuth: cfg.MongoAuth, } ctx, cancel := context.WithTimeout(ctx, 10*time.Second) defer cancel() mongoDeps := &mdb.ConnectDeps{ Configuration: dbConfig, Timeout: 10 * time.Second, } db, err := mdb.Connect(ctx, mongoDeps) if err != nil { return nil, err } err = db.Client().Ping(ctx, nil) if err != nil { return nil, err } return db, nil }