diff --git a/src/services/category.service.ts b/src/services/category.service.ts new file mode 100644 index 0000000..4100c90 --- /dev/null +++ b/src/services/category.service.ts @@ -0,0 +1,47 @@ +//FEAT Create new category +import type IDbCategory from "@interfaces/database/IDbCategory"; +import * as uuid from 'uuid' +import {Logger} from "tslog"; +import MysqlService from "@services/mysql.service"; + +const DbHandler = new MysqlService.Handler('CategoryService') +const logger = new Logger({name: 'CategoryService'}) + + + +/** + * Creates a new category with the given data. + * + * @param {IDbCategory} data - The category data. + * @returns {Promise} A promise that resolves with the created category. + * If an error occurs, the promise will reject with the error. + */ +async function createCategory(data: IDbCategory): Promise { + logger.info(`Creating a new category... (${data.display_name})`) + try { + return await MysqlService.Category.insert(DbHandler, { + id: uuid.v4(undefined, undefined, undefined), + display_name: data.display_name, + slug_name: data.slug_name + }) + } catch (e) { + logger.error(`Error creating category: ${e.message}`); + return; + } +} + +//FEAT Get all categories + +//FEAT Get a category (slug) + +//FEAT Get a category (id) + +//FEAT Get all models in category (slug) + +//FEAT Delete a category (id) + +const CategoryService = { + create: createCategory +} + +export default CategoryService; \ No newline at end of file