diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index 6f8745e..7a80ee4 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -411,7 +411,7 @@ const MySqlService = { * - The category objects are of type IDbCategory. * - If an error occurs, the promise will be rejected with an Error object. */ - getAll(handler: MysqlHandler) { + getAll(handler: MysqlHandler): Promise> { return new Promise((resolve, reject) => { const _sql = "SELECT * FROM `categories`"; try { @@ -420,6 +420,26 @@ const MySqlService = { reject(err as Error); } }); + }, + /** + * Retrieves a category from the database by its slug. + * + * @param {MysqlHandler} handler - The MySQL handler object to execute the query. + * @param {string} slug - The slug of the category to retrieve. + * @returns {Promise} - A promise that resolves with the retrieved category object. + * @throws {Error} - If an error occurs while executing the query. + */ + getBySlug(handler: MysqlHandler, slug: string): Promise { + return new Promise((resolve, reject) => { + if (!slug) return reject('slug is undefined') + const _sql = "SELECT * FROM `categories` WHERE `slug_name` = ?"; + const _values = [slug]; + try { + resolve(handler.execute(_sql, _values) as unknown as IDbCategory); + } catch (err: unknown) { + reject(err as Error); + } + }) } } }