feat(services): add getBySlugBrand function in brand.service

Adds a new function `getBySlugBrand` in `brand.service.ts`. This function retrieves a brand by its slug, providing a more specific search option. It implements error logging for missing slug or brand not found scenarios, and successful retrieval of the brand.

Issue: #13
Signed-off-by: Mathis <yidhra@tuta.io>
This commit is contained in:
Mathis H (Avnyr) 2024-04-26 09:40:24 +02:00
parent 33d44ee4b6
commit aecaf83d85
Signed by: Mathis
GPG Key ID: DD9E0666A747D126

View File

@ -78,10 +78,31 @@ async function getAllBrand(): Promise<Array<IDbBrand>| false> {
return brands;
}
/**
* Retrieves a brand by its slug.
*
* @param {string} brandSlug - The slug of the brand.
* @returns {Promise<IDbBrand|false>} - A promise that resolves to the retrieved brand object or false if the brand is not found.
*/
async function getBySlugBrand(brandSlug: string): Promise<IDbBrand | false> {
if (!brandSlug) {
logger.error("Brand slug is missing");
return false;
}
const brand = await MysqlService.Brand.getBySlug(DbHandler, brandSlug);
if (!brand) {
logger.error(`Brand not found (${brandSlug})`);
return false;
}
logger.info(`Retrieved brand by slug successfully (${brandSlug})`);
return brand;
}
const BrandService = {
create: createBrand,
update: updateBrand,
getAll: getAllBrand,
getBySlug: getBySlugBrand,
}
export default BrandService;