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 <yidhra@tuta.io>
This commit is contained in:
parent
cb1c2ee87c
commit
d7f9cb0b37
@ -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() {
|
||||
@ -66,23 +71,27 @@ class MysqlHandler {
|
||||
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<IDbStatusResult> {
|
||||
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({
|
||||
handler
|
||||
.factorize({
|
||||
values: data,
|
||||
actionName: `Update user ID::${data.id}`
|
||||
}).then((result)=>{
|
||||
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({
|
||||
handler
|
||||
.factorize({
|
||||
values: data,
|
||||
actionName: `Update brand ID::${data.id}`
|
||||
}).then((result)=>{
|
||||
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({
|
||||
handler
|
||||
.factorize({
|
||||
values: data,
|
||||
actionName: `Update users ID::${data.id}`
|
||||
}).then((result)=>{
|
||||
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({
|
||||
handler
|
||||
.factorize({
|
||||
values: data,
|
||||
actionName: `Update vehicle ID::${data.id}`
|
||||
}).then((result)=>{
|
||||
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({
|
||||
handler
|
||||
.factorize({
|
||||
values: data,
|
||||
actionName: `Update category ID::${data.id}`
|
||||
}).then((result)=>{
|
||||
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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user