Skip to content

Commit

Permalink
feat: connect bd and grid fs in db helper[3966]
Browse files Browse the repository at this point in the history
  • Loading branch information
Ihar committed Aug 20, 2024
1 parent 924763a commit 2995e87
Show file tree
Hide file tree
Showing 10 changed files with 62 additions and 18 deletions.
5 changes: 3 additions & 2 deletions analytics-service/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import {
COMMON_CONNECTION_CONFIG,
DataBaseHelper,
DataBaseHelper, DatabaseServer,
LargePayloadContainer,
MessageBrokerChannel,
Migration,
Expand Down Expand Up @@ -44,7 +44,8 @@ Promise.all([
mongoForLoggingInitialization(),
]).then(async ([db, app, cn, loggerMongo]) => {
try {
DataBaseHelper.orm = db;
DatabaseServer.connectBD(db);

app.connectMicroservice<MicroserviceOptions>({
transport: Transport.NATS,
options: {
Expand Down
6 changes: 4 additions & 2 deletions auth-service/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { WalletService } from './api/wallet-service.js';
import {
ApplicationState,
COMMON_CONNECTION_CONFIG,
DataBaseHelper,
DataBaseHelper, DatabaseServer,
LargePayloadContainer,
MessageBrokerChannel,
Migration,
Expand Down Expand Up @@ -60,7 +60,9 @@ Promise.all([
InitializeVault(process.env.VAULT_PROVIDER),
mongoForLoggingInitialization(),
]).then(async ([_, db, cn, app, vault, loggerMongo]) => {
DataBaseHelper.orm = db;

DatabaseServer.connectBD(db);

const state = new ApplicationState();
await state.setServiceName('AUTH_SERVICE').setConnection(cn).init();

Expand Down
18 changes: 17 additions & 1 deletion common/src/database-modules/database-server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ import { PolicyProperty } from '../entity/policy-property.js';
import { ObjectId, PopulatePath } from '@mikro-orm/mongodb';
import { FilterObject, FilterQuery, FindAllOptions } from '@mikro-orm/core';
import { IAuthUser } from '../interfaces';
import { Db, GridFSBucket } from 'mongodb';

/**
* Database server
Expand Down Expand Up @@ -3547,7 +3548,22 @@ export class DatabaseServer {
* @returns file ID
*/
public static async saveFile(uuid: string, buffer: Buffer): Promise<ObjectId> {
return DataBaseHelper.saveFile(uuid, buffer)
return DataBaseHelper.saveFile(uuid, buffer);
}

/**
* Set MongoDriver
* @param db
*/
public static connectBD(db: any): void {
DataBaseHelper.connectBD(db);
}

/**
* Grid fs connect
*/
public static connectGridFS() {
DataBaseHelper.connectGridFS();
}

/**
Expand Down
19 changes: 18 additions & 1 deletion common/src/helpers/db-helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { MikroORM, CreateRequestContext, wrap, FilterObject, FilterQuery, FindAl
import { MongoDriver, MongoEntityManager, MongoEntityRepository, ObjectId } from '@mikro-orm/mongodb';
import { BaseEntity } from '../models/index.js';
import { DataBaseNamingStrategy } from './db-naming-strategy.js';
import { GridFSBucket } from 'mongodb';
import { Db, GridFSBucket } from 'mongodb';
import fixConnectionString from './fix-connection-string.js';
import type { FindOptions } from '@mikro-orm/core/drivers/IDatabaseDriver';
import { MintTransactionStatus } from '@guardian/interfaces';
Expand Down Expand Up @@ -138,6 +138,23 @@ export class DataBaseHelper<T extends BaseEntity> {
return DataBaseHelper._gridFS;
}

/**
* Set MongoDriver
* @param db
*/
public static connectBD(db: MikroORM<MongoDriver>) {
DataBaseHelper.orm = db;
}

/**
* Grid fs connect
*/
public static connectGridFS() {
const connect: Db = DataBaseHelper.orm.em.getDriver().getConnection().getDb();

DataBaseHelper.gridFS = new GridFSBucket(connect);
}

/**
* Save file
* @param uuid
Expand Down
4 changes: 3 additions & 1 deletion common/src/secret-manager/migrations/migrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { SecretManager } from '../secret-manager.js';
import { Wallet } from '../../wallet/index.js';
import { SecretManagerType } from '../secret-manager-config.js';
import { exit } from 'process';
import { DatabaseServer } from '../../database-modules';

const globalEnvPath = path.join(process.cwd(), '../.env')
// const authEnvPath = path.join(process.cwd(), '../auth-service/.env')
Expand Down Expand Up @@ -141,7 +142,8 @@ async function migrate() {
ensureIndexes: true,
})

DataBaseHelper.orm = db;
DatabaseServer.connectBD(db);

const dbSecret = new DataBaseHelper(WalletAccount)

// write IPFS API KEY to Vault
Expand Down
5 changes: 3 additions & 2 deletions guardian-service/src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,9 +139,10 @@ Promise.all([

app.listen();

DataBaseHelper.orm = db;
DatabaseServer.connectBD(db);

DatabaseServer.connectGridFS();

DataBaseHelper.gridFS = new GridFSBucket(db.em.getDriver().getConnection().getDb());
new PolicyServiceChannelsContainer().setConnection(cn);
new TransactionLogger().initialization(
cn,
Expand Down
5 changes: 3 additions & 2 deletions logger-service/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, LargePayloadContainer, MessageBrokerChannel, Migration, Log, mongoForLoggingInitialization } from '@guardian/common';
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, LargePayloadContainer, MessageBrokerChannel, Migration, Log, mongoForLoggingInitialization, DatabaseServer } from '@guardian/common';
import { ApplicationStates } from '@guardian/interfaces';
import { NestFactory } from '@nestjs/core';
import { Deserializer, IncomingRequest, MicroserviceOptions, Serializer, Transport } from '@nestjs/microservices';
Expand Down Expand Up @@ -43,7 +43,8 @@ Promise.all([
}),
]).then(async values => {
const [_, db, mqConnection, app] = values;
DataBaseHelper.orm = db;

DatabaseServer.connectBD(db);

app.listen();

Expand Down
5 changes: 3 additions & 2 deletions notification-service/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, MessageBrokerChannel, Migration, mongoForLoggingInitialization, PinoLogger, pinoLoggerInitialization } from '@guardian/common';
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, DatabaseServer, MessageBrokerChannel, Migration, mongoForLoggingInitialization, PinoLogger, pinoLoggerInitialization } from '@guardian/common';
import { ApplicationStates } from '@guardian/interfaces';
import { MikroORM } from '@mikro-orm/core';
import { MongoDriver } from '@mikro-orm/mongodb';
Expand Down Expand Up @@ -39,7 +39,8 @@ Promise.all([
]).then(
async (values) => {
const [_, db, mqConnection, app, loggerMongo] = values;
DataBaseHelper.orm = db;

DatabaseServer.connectBD(db);

app.listen();

Expand Down
8 changes: 5 additions & 3 deletions policy-service/src/api/policy-process.ts
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,11 @@ Promise.all([
]).then(async values => {
const [db, cn, app, loggerMongo] = values;
app.listen();
DataBaseHelper.orm = db;
// @ts-ignore
DataBaseHelper.gridFS = new GridFSBucket(db.em.getDriver().getConnection().getDb());

DatabaseServer.connectBD(db);

DatabaseServer.connectGridFS();

Environment.setLocalNodeProtocol(process.env.LOCALNODE_PROTOCOL);
Environment.setLocalNodeAddress(process.env.LOCALNODE_ADDRESS);
Environment.setNetwork(process.env.HEDERA_NET);
Expand Down
5 changes: 3 additions & 2 deletions queue-service/src/app.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, MessageBrokerChannel, mongoForLoggingInitialization, NotificationService, PinoLogger, pinoLoggerInitialization } from '@guardian/common';
import { ApplicationState, COMMON_CONNECTION_CONFIG, DataBaseHelper, DatabaseServer, MessageBrokerChannel, mongoForLoggingInitialization, NotificationService, PinoLogger, pinoLoggerInitialization } from '@guardian/common';
import { ApplicationStates, GenerateUUIDv4 } from '@guardian/interfaces';
import { MikroORM } from '@mikro-orm/core';
import { MongoDriver } from '@mikro-orm/mongodb';
Expand Down Expand Up @@ -39,7 +39,8 @@ Promise.all([
mongoForLoggingInitialization()
]).then(async values => {
const [db, cn, app, loggerMongo] = values;
DataBaseHelper.orm = db;

DatabaseServer.connectBD(db);

app.listen();
// new MessageBrokerChannel(cn, 'worker');
Expand Down

0 comments on commit 2995e87

Please sign in to comment.