From 64aa814d2c79e525429f9d466fccf35255314e51 Mon Sep 17 00:00:00 2001 From: Mathis Date: Thu, 25 Apr 2024 16:24:02 +0200 Subject: [PATCH] feat(services): add update method to mysql service An `update` method is added to the `mysql.service.ts` for handling database updates. This new function checks for validity of the `id` before constructing and executing an SQL update statement. Errors are also caught and handled. Issue: #5 Signed-off-by: Mathis --- src/services/mysql.service.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index bfbad48..56e60a4 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -289,6 +289,31 @@ const MySqlService = { reject(err as Error); } }) + }, + update(handler: MysqlHandler, data: IDbBrand) { + return new Promise((resolve, reject) => { + if (!data.id) return reject('Id is undefined'); + if (data.id.length !== 36) return reject('Id invalid'); + + try { + const _template = ` + ${data.slug_name ? "`slug_name` = ?," : null} + ${data.display_name ? "`display_name` = ?," : null} + ${data.image_blob ? "`slug_name` = ?," : null}` + + const _values = [ + data.slug_name, + data.display_name, + data.image_blob, + data.id + ] + const _sql = `UPDATE "brands" SET ${_template} WHERE 'id' = ?`; + return resolve(handler.execute(_sql, _values)); + + } catch (err: unknown) { + reject(err as Error); + } + }) } },