feat(services): refactor update methods in mysql service
This commit: - Standardizes the data handling in all update methods, using `handler.factorize()` - Moves gdpr date validation to the top of 'update' method to reject it earliest - Removes the unused `_values` and `_template` variables. Signed-off-by: Mathis <yidhra@tuta.io>
This commit is contained in:
parent
f6d18fc58d
commit
23ce32cb6f
@ -183,24 +183,21 @@ const MySqlService = {
|
|||||||
*/
|
*/
|
||||||
update(handler: MysqlHandler, data: IUserUpdate): Promise<IDbStatusResult> {
|
update(handler: MysqlHandler, data: IUserUpdate): Promise<IDbStatusResult> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!data.id) return reject("Id is undefined");
|
|
||||||
if (data.id.length !== 36) return reject("Id invalid");
|
|
||||||
if (data.gdpr && typeof data.gdpr !== typeof Date) {
|
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 {
|
try {
|
||||||
const _values = [];
|
handler.factorize({
|
||||||
const _template = `
|
values: data,
|
||||||
${data.username ? "`username` = ?," && _values.push(data.username) as unknown as void : null}
|
actionName: `Update user ID::${data.id}`
|
||||||
${data.firstname ? "`firstname` = ?," : null}
|
}).then((result)=>{
|
||||||
${data.lastname ? "`lastname` = ?," : null}
|
const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`;
|
||||||
${data.dob ? "`dob` = ?," : null}
|
handler.execute(_sql, result._valuesArray).then((result) => {
|
||||||
${data.gdpr ? "`gdpr` = ?," : null}`
|
|
||||||
|
|
||||||
const _sql = `UPDATE "users" SET ${_template} WHERE 'id' = ?`;
|
|
||||||
handler.execute(_sql, _values).then((result) => {
|
|
||||||
return resolve(result as unknown as IDbStatusResult);
|
return resolve(result as unknown as IDbStatusResult);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
reject(err as Error);
|
reject(err as Error);
|
||||||
}
|
}
|
||||||
@ -359,16 +356,16 @@ const MySqlService = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!data.id) return reject("Id is undefined");
|
if (!data.id) return reject("Id is undefined");
|
||||||
if (data.id.length !== 36) return reject("Id invalid");
|
if (data.id.length !== 36) return reject("Id invalid");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
handler.factorize({
|
handler.factorize({
|
||||||
values: data,
|
values: data,
|
||||||
actionName: `Update user ID::${data.id}`
|
actionName: `Update brand ID::${data.id}`
|
||||||
})
|
}).then((result)=>{
|
||||||
const _sql = `UPDATE "brands" SET ${_template} WHERE 'id' = ?`;
|
const _sql = `UPDATE "brands" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`;
|
||||||
handler.execute(_sql, _values).then((result) => {
|
handler.execute(_sql, result._valuesArray).then((result) => {
|
||||||
return resolve(result as unknown as IDbStatusResult);
|
return resolve(result as unknown as IDbStatusResult);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
reject(err as Error);
|
reject(err as Error);
|
||||||
}
|
}
|
||||||
@ -581,31 +578,16 @@ const MySqlService = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!data.id) return reject("Id is undefined");
|
if (!data.id) return reject("Id is undefined");
|
||||||
if (data.id.length !== 36) return reject("Id invalid");
|
if (data.id.length !== 36) return reject("Id invalid");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const _template = `
|
handler.factorize({
|
||||||
${data.slug_name ? "`slug_name` = ?," : null}
|
values: data,
|
||||||
${data.display_name ? "`display_name` = ?," : null}
|
actionName: `Update users ID::${data.id}`
|
||||||
${data.brand_id ? "`brand_id` = ?," : null}
|
}).then((result)=>{
|
||||||
${data.category_id ? "`category_id` = ?," : null}
|
const _sql = `UPDATE "users" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`;
|
||||||
${data.image_blob ? "`image_blob` = ?," : null}
|
handler.execute(_sql, result._valuesArray).then((result) => {
|
||||||
${data.is_trending ? "`is_trending` = ?," : null}
|
|
||||||
${data.base_price ? "`base_price` = ?," : null}`;
|
|
||||||
|
|
||||||
const _values = [
|
|
||||||
data.slug_name,
|
|
||||||
data.display_name,
|
|
||||||
data.brand_id,
|
|
||||||
data.category_id,
|
|
||||||
data.image_blob,
|
|
||||||
data.is_trending,
|
|
||||||
data.base_price,
|
|
||||||
data.id,
|
|
||||||
];
|
|
||||||
const _sql = `UPDATE "models" SET ${_template} WHERE 'id' = ?`;
|
|
||||||
handler.execute(_sql, _values).then((result) => {
|
|
||||||
return resolve(result as unknown as IDbStatusResult);
|
return resolve(result as unknown as IDbStatusResult);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
reject(err as Error);
|
reject(err as Error);
|
||||||
}
|
}
|
||||||
@ -681,25 +663,16 @@ const MySqlService = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!data.id) return reject("Id is undefined");
|
if (!data.id) return reject("Id is undefined");
|
||||||
if (data.id.length !== 36) return reject("Id invalid");
|
if (data.id.length !== 36) return reject("Id invalid");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const _template = `
|
handler.factorize({
|
||||||
${data.model_id ? "`model_id` = ?," : null}
|
values: data,
|
||||||
${data.plate_number ? "`plate_number` = ?," : null}
|
actionName: `Update vehicle ID::${data.id}`
|
||||||
${data.odometer ? "`odometer` = ?," : null}
|
}).then((result)=>{
|
||||||
${data.health_state ? "`health_state` = ?," : null}`;
|
const _sql = `UPDATE "vehicles" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`;
|
||||||
|
handler.execute(_sql, result._valuesArray).then((result) => {
|
||||||
const _values = [
|
|
||||||
data.model_id,
|
|
||||||
data.plate_number,
|
|
||||||
data.odometer,
|
|
||||||
data.health_state,
|
|
||||||
data.id,
|
|
||||||
];
|
|
||||||
const _sql = `UPDATE "vehicles" SET ${_template} WHERE 'id' = ?`;
|
|
||||||
handler.execute(_sql, _values).then((result) => {
|
|
||||||
return resolve(result as unknown as IDbStatusResult);
|
return resolve(result as unknown as IDbStatusResult);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
reject(err as Error);
|
reject(err as Error);
|
||||||
}
|
}
|
||||||
@ -808,17 +781,16 @@ const MySqlService = {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (!data.id) return reject("Id is undefined");
|
if (!data.id) return reject("Id is undefined");
|
||||||
if (data.id.length !== 36) return reject("Id invalid");
|
if (data.id.length !== 36) return reject("Id invalid");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const _template = `
|
handler.factorize({
|
||||||
${data.slug_name ? "`slug_name` = ?," : null}
|
values: data,
|
||||||
${data.display_name ? "`display_name` = ?," : null}`;
|
actionName: `Update category ID::${data.id}`
|
||||||
|
}).then((result)=>{
|
||||||
const _values = [data.slug_name, data.display_name, data.id];
|
const _sql = `UPDATE "categories" SET ${result._keysTemplate} WHERE 'id' = '${data.id}'`;
|
||||||
const _sql = `UPDATE "categories" SET ${_template} WHERE 'id' = ?`;
|
handler.execute(_sql, result._valuesArray).then((result) => {
|
||||||
handler.execute(_sql, _values).then((result) => {
|
|
||||||
return resolve(result as unknown as IDbStatusResult);
|
return resolve(result as unknown as IDbStatusResult);
|
||||||
});
|
});
|
||||||
|
})
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
reject(err as Error);
|
reject(err as Error);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user