feat(services): add model service
This commit adds a new service `ModelService` to handle model operations such as create, update, and delete. Some features like getBySlug, getAll, getById, getByCategory, and getByBrand are also introduced. Issue: #27 Signed-off-by: Mathis <yidhra@tuta.io>
This commit is contained in:
parent
30bd5a0dbe
commit
c70bcef352
44
src/services/model.service.ts
Normal file
44
src/services/model.service.ts
Normal file
@ -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;
|
Loading…
x
Reference in New Issue
Block a user