feat: Add DatabasesService in services/databases
Implemented new class DatabasesService for handling database interactions in place of multiple database services. This centralizes the interaction with different databases - MariaDb and MongoDB with added logging utility for monitoring query results. Also, a test instance of the DatabasesService was created as 'justForTesting' for development purposes.
This commit is contained in:
parent
6b944301cc
commit
9c45029706
34
src/services/databases/databases.service.ts
Normal file
34
src/services/databases/databases.service.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import {MariadbService} from "@services/databases/mariadb.service";
|
||||||
|
import {MongodbService} from "@services/databases/mongodb.service";
|
||||||
|
import {LogsUtils} from "@utils/logs.util";
|
||||||
|
|
||||||
|
interface MariaDbStatusResult {
|
||||||
|
fieldCount: number;
|
||||||
|
affectedRows: number;
|
||||||
|
insertId: number;
|
||||||
|
info: string;
|
||||||
|
serverStatus: number;
|
||||||
|
warningStatus: number;
|
||||||
|
changedRows: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
class DatabasesService {
|
||||||
|
private readonly _appName;
|
||||||
|
private readonly maria: MariadbService;
|
||||||
|
private readonly mongo: MongodbService;
|
||||||
|
private readonly logs: LogsUtils;
|
||||||
|
constructor(appName?: string) {
|
||||||
|
this._appName = appName || 'App';
|
||||||
|
this.maria = new MariadbService(this._appName + ' DbInteractions');
|
||||||
|
this.mongo = new MongodbService(this._appName + ' DbInteractions');
|
||||||
|
this.logs = new LogsUtils(this._appName + ' DbInteractions');
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAllUsers() {
|
||||||
|
const result = await this.maria.query("SELECT * FROM users");
|
||||||
|
this.logs.debug('Fetching users from database', result)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const justForTesting = new DatabasesService('OnlyDevs')
|
Loading…
x
Reference in New Issue
Block a user