feat(services): implement getById and getAll methods in mysql service

Implemented getById and getAll methods in the mysql service. The getById method retrieves a vehicle by its ID, and the getAll method fetches all vehicles from the database. These improvements facilitate more efficient data retrieval and enhance overall service functionality.

Issue: #20
Signed-off-by: Mathis <yidhra@tuta.io>
This commit is contained in:
Mathis H (Avnyr) 2024-04-29 12:23:13 +02:00
parent 8138231112
commit 37cfaf4bbd
Signed by: Mathis
GPG Key ID: DD9E0666A747D126

View File

@ -464,6 +464,7 @@ const MySqlService = {
} }
}); });
}, },
/** /**
* Retrieves a model by its ID from the database. * Retrieves a model by its ID from the database.
* *
@ -646,18 +647,44 @@ const MySqlService = {
}) })
}, },
//TODO get by slug /**
getBySlug(handler: MysqlHandler, data: IDbVehicle) { * Retrieves a vehicle from the database by its ID.
*
* @param {MysqlHandler} handler - The instance of the MySQL handler.
* @param {string} vehicleId - The ID of the vehicle to retrieve.
* @returns {Promise<IDbVehicle>} - A promise that resolves to the retrieved vehicle.
* @throws {Error} - If an error occurs while retrieving the vehicle.
*/
getById(handler: MysqlHandler, vehicleId: string): Promise<IDbVehicle> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!vehicleId) return reject('Id is undefined');
}) if (vehicleId.length !== 36) return reject('Id invalid');
const _sql = "SELECT * FROM `vehicles` WHERE `id` = ?";
const _values = [vehicleId];
try {
resolve(handler.execute(_sql, _values) as unknown as IDbVehicle);
} catch (err: unknown) {
reject(err as Error);
}
});
}, },
//TODO get all /**
getAll(handler: MysqlHandler, data: IDbVehicle) { * Retrieves all vehicles from the database.
*
* @param {MysqlHandler} handler - The MySQL handler for executing queries.
* @return {Promise<Array<IDbVehicle>>} A promise that resolves with an array of database vehicles.
* @throws {Error} If an error occurs during the database query.
*/
getAll(handler: MysqlHandler): Promise<Array<IDbVehicle>> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const _sql = "SELECT * FROM `models`";
}) try {
resolve(handler.query(_sql) as unknown as Array<IDbVehicle>);
} catch (err: unknown) {
reject(err as Error);
}
});
}, },
//TODO get available //TODO get available