From d7f9cb0b3787bc09d6ecfdea0eaf47c35482c911 Mon Sep 17 00:00:00 2001 From: Mathis Date: Tue, 30 Apr 2024 16:51:55 +0200 Subject: [PATCH] feat(services): enhance readability and update factorize function for various elements in mysql.service - The readability within mysql.service.ts file is improved by formatting multi-line functions. - The factorize function for 'users', 'brands', 'vehicles', and 'categories' has been updated to enhance code quality. - Import statements were restructured for better readability. Signed-off-by: Mathis --- src/services/mysql.service.ts | 129 +++++++++++++++++++--------------- 1 file changed, 74 insertions(+), 55 deletions(-) diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index cba9aec..b4bd2a2 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -1,14 +1,17 @@ import process from "node:process"; import type { IDbBrand } from "@interfaces/database/IDbBrand"; import type { IDbCategory } from "@interfaces/database/IDbCategory"; +import type { + IDbFactorizeInput, + IDbFactorizeOutput, +} from "@interfaces/database/IDbFactorize"; import type { IDbModel } from "@interfaces/database/IDbModel"; import type { IDbStatusResult } from "@interfaces/database/IDbStatusResult"; import type { IDbUser } from "@interfaces/database/IDbUser"; import type { IDbVehicle } from "@interfaces/database/IDbVehicle"; +import type { IUserUpdate } from "@interfaces/services/IUserUpdate"; import mysql, { type Connection, type ConnectionOptions } from "mysql2"; import { Logger } from "tslog"; -import {IUserUpdate} from "@interfaces/services/IUserUpdate"; -import {IDbFactorizeInput, IDbFactorizeOutput} from "@interfaces/database/IDbFactorize"; const access: ConnectionOptions = { host: `${process.env["MYSQL_HOST"]}`, @@ -34,7 +37,9 @@ class MysqlHandler { this.Logger.error(`Error connecting to MySQL: ${err}`); process.exit(1); } - this.Logger.info(`\n\n> Connected to MySQL database (${access.database})\n`); + this.Logger.info( + `\n\n> Connected to MySQL database (${access.database})\n`, + ); }); } closeConnection() { @@ -62,27 +67,31 @@ class MysqlHandler { * @return {Promise} - A promise resolving to the factorized output. */ factorize(data: IDbFactorizeInput): Promise { - return new Promise((resolve, reject)=>{ + return new Promise((resolve, reject) => { try { // @ts-ignore data.values.id ? delete data.values.id : null; - const _sqlQueryKeys = Object.keys(data.values).map((key: string) => `\'${key}\' = ?`) - const values = Object.values(data.values).map((val)=>val) - this.Logger.debug(`\n\n>-> Factorized ${_sqlQueryKeys.length} keys for a prepare Query.\n>-> Action: ${data.actionName}\n`) - const sqlQueryKeys = _sqlQueryKeys.join(', ') + const _sqlQueryKeys = Object.keys(data.values).map( + (key: string) => `\'${key}\' = ?`, + ); + const values = Object.values(data.values).map((val) => val); + this.Logger.debug( + `\n\n>-> Factorized ${_sqlQueryKeys.length} keys for a prepare Query.\n>-> Action: ${data.actionName}\n`, + ); + const sqlQueryKeys = _sqlQueryKeys.join(", "); const factorizedOutput: IDbFactorizeOutput = { _keysTemplate: sqlQueryKeys, totalFields: _sqlQueryKeys.length, - _valuesArray: values - } + _valuesArray: values, + }; resolve(factorizedOutput); } catch (err) { - if (data.throwOnError) throw new Error(`${err}`) - this.Logger.error(`\n|\n${err}\n|`) - reject(`${err}`) + if (data.throwOnError) throw new Error(`${err}`); + this.Logger.error(`\n|\n${err}\n|`); + reject(`${err}`); } - }) + }); } /** @@ -184,20 +193,22 @@ const MySqlService = { update(handler: MysqlHandler, data: IUserUpdate): Promise { return new Promise((resolve, reject) => { if (data.gdpr && typeof data.gdpr !== typeof Date) { - return reject("Invalid gdpr date.") + return reject("Invalid gdpr date."); } if (!data.id) return reject("Id is undefined"); if (data.id.length !== 36) return reject("Id invalid"); try { - handler.factorize({ - values: data, - actionName: `Update user ID::${data.id}` - }).then((result)=>{ - const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; - handler.execute(_sql, result._valuesArray).then((result) => { - return resolve(result as unknown as IDbStatusResult); + handler + .factorize({ + values: data, + actionName: `Update user ID::${data.id}`, + }) + .then((result) => { + const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; + handler.execute(_sql, result._valuesArray).then((result) => { + return resolve(result as unknown as IDbStatusResult); + }); }); - }) } catch (err: unknown) { reject(err as Error); } @@ -357,15 +368,17 @@ const MySqlService = { if (!data.id) return reject("Id is undefined"); if (data.id.length !== 36) return reject("Id invalid"); try { - handler.factorize({ - values: data, - actionName: `Update brand ID::${data.id}` - }).then((result)=>{ - const _sql = `UPDATE "brands" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; - handler.execute(_sql, result._valuesArray).then((result) => { - return resolve(result as unknown as IDbStatusResult); + handler + .factorize({ + values: data, + actionName: `Update brand ID::${data.id}`, + }) + .then((result) => { + const _sql = `UPDATE "brands" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; + handler.execute(_sql, result._valuesArray).then((result) => { + return resolve(result as unknown as IDbStatusResult); + }); }); - }) } catch (err: unknown) { reject(err as Error); } @@ -579,15 +592,17 @@ const MySqlService = { if (!data.id) return reject("Id is undefined"); if (data.id.length !== 36) return reject("Id invalid"); try { - handler.factorize({ - values: data, - actionName: `Update users ID::${data.id}` - }).then((result)=>{ - const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; - handler.execute(_sql, result._valuesArray).then((result) => { - return resolve(result as unknown as IDbStatusResult); + handler + .factorize({ + values: data, + actionName: `Update users ID::${data.id}`, + }) + .then((result) => { + const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; + handler.execute(_sql, result._valuesArray).then((result) => { + return resolve(result as unknown as IDbStatusResult); + }); }); - }) } catch (err: unknown) { reject(err as Error); } @@ -664,15 +679,17 @@ const MySqlService = { if (!data.id) return reject("Id is undefined"); if (data.id.length !== 36) return reject("Id invalid"); try { - handler.factorize({ - values: data, - actionName: `Update vehicle ID::${data.id}` - }).then((result)=>{ - const _sql = `UPDATE "vehicles" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; - handler.execute(_sql, result._valuesArray).then((result) => { - return resolve(result as unknown as IDbStatusResult); + handler + .factorize({ + values: data, + actionName: `Update vehicle ID::${data.id}`, + }) + .then((result) => { + const _sql = `UPDATE "vehicles" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; + handler.execute(_sql, result._valuesArray).then((result) => { + return resolve(result as unknown as IDbStatusResult); + }); }); - }) } catch (err: unknown) { reject(err as Error); } @@ -782,15 +799,17 @@ const MySqlService = { if (!data.id) return reject("Id is undefined"); if (data.id.length !== 36) return reject("Id invalid"); try { - handler.factorize({ - values: data, - actionName: `Update category ID::${data.id}` - }).then((result)=>{ - const _sql = `UPDATE "categories" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; - handler.execute(_sql, result._valuesArray).then((result) => { - return resolve(result as unknown as IDbStatusResult); + handler + .factorize({ + values: data, + actionName: `Update category ID::${data.id}`, + }) + .then((result) => { + const _sql = `UPDATE "categories" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`; + handler.execute(_sql, result._valuesArray).then((result) => { + return resolve(result as unknown as IDbStatusResult); + }); }); - }) } catch (err: unknown) { reject(err as Error); }