diff --git a/src/services/model.service.ts b/src/services/model.service.ts new file mode 100644 index 0000000..0576a16 --- /dev/null +++ b/src/services/model.service.ts @@ -0,0 +1,44 @@ +import type IDbModel from "@interfaces/database/IDbModel"; +import MysqlService from "@services/mysql.service"; +import {Logger} from "tslog"; +import { v4 as uuidv4 } from 'uuid'; + +const DbHandler = new MysqlService.Handler('ModelService') +const logger = new Logger({name: 'ModelService'}) + +//SEC TODO validate blob +async function createModel(data: IDbModel) { + logger.info(`Creating a new model... (${data.display_name})`) + //TODO Validate IDbModel data + try { + await MysqlService.Model.insert(DbHandler, { + id: uuidv4(), + display_name: data.display_name, + slug_name: data.slug_name, + image_blob: data.image_blob, + brand_id: data.brand_id, + category_id: data.category_id, + base_price: data.base_price, + is_trending: data.is_trending + }) + //TODO Return the new id + logger.info('Success !') + return true; + } catch (error) { + logger.error(`Error creating category: ${error}`); + return false; + } +} + +const ModelService = { + create: createModel, + update: updateModel, + delete: deleteModel, + getBySlug: getBySlugModel, + getAll: getAllModels, + getById: getByIdModel, + getByCategory: getByCategoryModel, + getByBrand: getModelsByBrand, +} + +export default ModelService;