From ccee786c2f56a38b9fd5f13eae20957336c47cc1 Mon Sep 17 00:00:00 2001 From: Mathis Date: Wed, 24 Apr 2024 15:07:45 +0200 Subject: [PATCH] feat(services): :tada: db - models getters interaction #7 --- src/services/mysql.service.ts | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index 3e9dd8c..888f501 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -267,6 +267,59 @@ const MySqlService = { } }); } + }, + + Model: { + + /** + * Retrieves all records from the 'models' table. + * + * @param {MysqlHandler} handler - The MySQL handler object used to execute the query. + * @return {Promise>} - A promise that resolves to an array of IDbModel objects representing the retrieved records from the 'models' table. + * @throws {Error} - If there is an error executing the query. + */ + getAll(handler: MysqlHandler): Promise> { + return new Promise((resolve, reject) => { + const _sql = "SELECT * FROM `models`"; + try { + resolve(handler.query(_sql) as unknown as Array); + } catch (err: unknown) { + reject(err as Error); + } + }); + }, + + /** + * Retrieves a database model by slug from a given MySQL handler. + * + * @param {MysqlHandler} handler - The MySQL handler instance. + * @param {string} slug - The slug of the model to retrieve. + * @return {Promise} A promise that resolves with the retrieved model. + * @throws {Error} If there was an error executing the query. + */ + getBySlug(handler: MysqlHandler, slug: string): Promise { + return new Promise((resolve, reject) => { + const _sql = "SELECT * FROM `models` WHERE `slug` = ?"; + const _values = [slug]; + try { + resolve(handler.execute(_sql, _values) as unknown as IDbModel); + } catch (err: unknown) { + reject(err as Error); + } + }); + }, + getById(handler: MysqlHandler, modelId: string): Promise { + return new Promise((resolve, reject) => { + const _sql = "SELECT * FROM `models` WHERE `id` = ?"; + const _values = [modelId]; + try { + resolve(handler.execute(_sql, _values) as unknown as IDbModel); + } catch (err: unknown) { + reject(err as Error); + } + }); + }, + //TODO Create / Update / Delete } }