diff --git a/src/services/mysql.service.ts b/src/services/mysql.service.ts index 22ebd3d..a2d8777 100644 --- a/src/services/mysql.service.ts +++ b/src/services/mysql.service.ts @@ -464,6 +464,7 @@ const MySqlService = { } }); }, + /** * 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} - A promise that resolves to the retrieved vehicle. + * @throws {Error} - If an error occurs while retrieving the vehicle. + */ + getById(handler: MysqlHandler, vehicleId: string): Promise { 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>} A promise that resolves with an array of database vehicles. + * @throws {Error} If an error occurs during the database query. + */ + getAll(handler: MysqlHandler): Promise> { return new Promise((resolve, reject) => { - - }) + const _sql = "SELECT * FROM `models`"; + try { + resolve(handler.query(_sql) as unknown as Array); + } catch (err: unknown) { + reject(err as Error); + } + }); }, //TODO get available