From 0abdbab6271ba800060d6d4d2ecf676e7759ab5a Mon Sep 17 00:00:00 2001 From: Mathis Date: Thu, 25 Apr 2024 12:52:42 +0200 Subject: [PATCH] feat(services): add getById and delete methods in mysql.service.ts The changes introduce two new methods in mysql.service.ts. The getById method retrieves a category from the database using its ID while the delete method will delete a category from the database using the provided category ID. Both methods return promises. Issue: #6 Signed-off-by: Mathis --- src/services/mysql.service.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index 9b6f024..d13a70e 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -441,6 +441,14 @@ const MySqlService = { } }) }, + /** + * Retrieves a category from the database by its ID. + * + * @param {MysqlHandler} handler - The MySQL handler object used for execution. + * @param {string} categoryId - The ID of the category to retrieve. + * @returns {Promise} - A Promise that resolves with the category object. + * @throws {Error} - If an error occurs during execution. + */ getById(handler: MysqlHandler, categoryId: string): Promise { return new Promise((resolve, reject) => { if (!categoryId) return reject('slug is undefined') @@ -454,6 +462,19 @@ const MySqlService = { } }); }, + delete(handler: MysqlHandler, categoryId: string) { + return new Promise((resolve, reject) => { + if (!categoryId) return reject('Id is undefined'); + if (categoryId.length !== 36) return reject('Id invalid'); + const _sql = "DELETE FROM `categories` WHERE `id` = ?"; + const _values = [categoryId]; + try { + resolve(handler.execute(_sql, _values)); + } catch (err: unknown) { + reject(err as Error); + } + }) + } } }