diff --git a/src/services/model.service.ts b/src/services/model.service.ts index dd680f4..01700b2 100644 --- a/src/services/model.service.ts +++ b/src/services/model.service.ts @@ -91,6 +91,54 @@ async function deleteModel(modelSlug: string): Promise { } } + +/** + * Fetches a model by slug from the database. + * + * @param {string} modelSlug - The slug of the model to be fetched. + * @return {Promise} - A promise that resolves to the model if found, else null. + */ +async function getBySlugModel(modelSlug: string): Promise { + logger.info(`Fetching model with slug: ${modelSlug}`); + try { + const model = await MysqlService.Model.getBySlug(DbHandler, modelSlug); + if (!model) { + logger.warn(`Model with slug ${modelSlug} not found`); + return null; + } + return model; + } catch (error) { + logger.error(`Error fetching model by slug: ${error}`); + return null; + } +} + + +/** + * Fetches all models from the database. + * + * @return {Promise} - A promise that resolves to an array of all models if found, else null. + */ +async function getAllModels(): Promise { + logger.info("Fetching all models from the database"); + try { + const models = await MysqlService.Model.getAll(DbHandler); + if (!models || models.length === 0) { + logger.warn("No models found on the database"); + return null; + } + logger.info(`Found ${models.length} model(s)`) + return models; + } catch (error) { + logger.error(`Error fetching all models: ${error}`); + return null; + } +} + +/** + * ModelService is responsible for managing models. + * @namespace + */ const ModelService = { create: createModel, update: updateModel,