From 9c450297066db8b2c7fe34dc42563756380af3b8 Mon Sep 17 00:00:00 2001 From: Mathis Date: Tue, 14 May 2024 23:35:11 +0200 Subject: [PATCH] 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. --- src/services/databases/databases.service.ts | 34 +++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/services/databases/databases.service.ts diff --git a/src/services/databases/databases.service.ts b/src/services/databases/databases.service.ts new file mode 100644 index 0000000..27d3d30 --- /dev/null +++ b/src/services/databases/databases.service.ts @@ -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') \ No newline at end of file