import { dataSource } from "../../data-source"; import { maintenance } from "../../entity/unit/maintenance"; import DatabaseActionException from "../../exceptions/databaseActionException"; export default abstract class MaintenanceService { /** * @description get all maintenances * @returns {Promise>} */ static async getAll(): Promise> { return await dataSource .getRepository(maintenance) .createQueryBuilder("maintenance") .leftJoinAndSelect("maintenance.equipment", "equipment") .leftJoinAndSelect("maintenance.vehicle", "vehicle") .leftJoinAndSelect("maintenance.wearable", "wearable") .leftJoinAndSelect("maintenance.reports", "reports") .orderBy("type", "ASC") .getMany() .then((res) => { return res; }) .catch((err) => { throw new DatabaseActionException("SELECT", "maintenance", err); }); } /** * @description get maintenance by id * @returns {Promise} */ static async getById(id: string): Promise { return await dataSource .getRepository(maintenance) .createQueryBuilder("maintenance") .leftJoinAndSelect("maintenance.equipment", "equipment") .leftJoinAndSelect("maintenance.vehicle", "vehicle") .leftJoinAndSelect("maintenance.wearable", "wearable") .leftJoinAndSelect("maintenance.reports", "reports") .where({ id }) .getOneOrFail() .then((res) => { return res; }) .catch((err) => { throw new DatabaseActionException("SELECT", "maintenance", err); }); } }