Compare commits

...

3 Commits

Author SHA1 Message Date
b6a2a74ba0
feat(services): add multiple vehicle services
Implemented `getAllVehiclesService`, `getVehicleByIdService` and `getAvailableVehicleService` in `vehicle.service.ts`. Each of these services fetches respective data from the MySQL database, handles errors, and returns the data along with a timestamp.

Issue: #21
Signed-off-by: Mathis <yidhra@tuta.io>
2024-05-02 16:49:13 +02:00
f310bedeff
feat(services): add vehicle update functionality in vehicle.service.ts
An `updateVehicleService` function has been introduced in `vehicle.service.ts` to enable vehicle data updates in the application. The function handles data validation, updates the MySQL database, and logs the process status.

Issue: #21
Signed-off-by: Mathis <yidhra@tuta.io>
2024-05-02 16:39:50 +02:00
838ea4ad22
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 <yidhra@tuta.io>
2024-05-02 16:37:28 +02:00

View File

@ -0,0 +1,112 @@
//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;
}
}
async function updateVehicleService(data: IDbVehicle) {
if (isDebugMode()) logger.debug(`\n\n> Updating vehicle...\n`);
try {
if (!data.id) {
return false
}
const result = await MySqlService.Vehicle.update(DbHandler, {
id: data.id,
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 updating vehicle: \n${error}\n`);
return false;
}
}
async function getAllVehiclesService() {
try {
const result = await MySqlService.Vehicle.getAll(DbHandler);
return {
iat: Date.now(),
vehicles: result,
total: result.length
};
} catch (error) {
logger.error(`\n\n> Error getting vehicles: \n${error}\n`);
return false;
}
}
async function getVehicleByIdService(vehicleId: string) {
try {
const result = await MySqlService.Vehicle.getById(DbHandler, vehicleId);
return {
iat: Date.now(),
vehicle: result
};
} catch (error) {
logger.error(`\n\n> Error getting vehicle by id: \n${error}\n`);
return false;
}
}
async function getAvailableVehicleService() {
try {
const result = await MySqlService.Vehicle.getAvailable(DbHandler);
return {
iat: Date.now(),
vehicles: result,
total: result.length
};
} catch (error) {
logger.error(`\n\n> Error getting available vehicles: \n${error}\n`);
return false;
}
}
if (isDebugMode()) logger.debug("\nService loaded.");
const VehicleService = {
create: createVehicleService,
update: updateVehicleService,
getAll: getAllVehiclesService,
getById: getVehicleByIdService,
delete: deleteVehicleService,
getAvailable: getAvailableVehicleService
}
export default VehicleService;