From 838ea4ad2211d6a72f3ab2876f8d720468a767bc Mon Sep 17 00:00:00 2001 From: Mathis Date: Thu, 2 May 2024 16:37:28 +0200 Subject: [PATCH] feat(services): add new vehicle service This commit introduces a new file `vehicle.service.ts` which includes a function for creating new vehicles. It uses MySQL service for data handling and includes error handling and logging functionalities. The changes help in improving the code modularity and providing a specific service for vehicle management. Issue: #21 Signed-off-by: Mathis --- src/services/vehicle.service.ts | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/services/vehicle.service.ts diff --git a/src/services/vehicle.service.ts b/src/services/vehicle.service.ts new file mode 100644 index 0000000..9f88c36 --- /dev/null +++ b/src/services/vehicle.service.ts @@ -0,0 +1,43 @@ +//import { ErrorType, type ISError } from "@interfaces/services/ISError"; +import MySqlService from "@services/mysql.service"; +import { isDebugMode } from "@utils/debugState"; +import { Logger } from "tslog"; +import { v4 } from "uuid"; +import {IDbVehicle} from "@interfaces/database/IDbVehicle"; + +const logger = new Logger({ + name: "VehicleService", +}); + +const DbHandler = new MySqlService.Handler("VehicleService"); + +async function createVehicleService(data: IDbVehicle) { + if (isDebugMode()) logger.debug(`\n\n> Creating a new vehicle...\n`); + try { + const result = await MySqlService.Vehicle.insert(DbHandler, { + id: v4(), + plate_number: data.plate_number, + model_id: data.model_id, + odometer: data.odometer | 0, + health_state: data.health_state + }) + if (result.affectedRows !== 0) { + logger.info("\n\n> Success !"); + return true; + } + return false; + } catch (error) { + logger.error(`\n\n> Error creating category: \n${error}\n`); + return false; + } +} + + + +if (isDebugMode()) logger.debug("\nService loaded."); + +const VehicleService = { + create: createVehicleService, +} + +export default VehicleService; \ No newline at end of file