49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
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<Array<maintenance>>}
|
|
*/
|
|
static async getAll(): Promise<Array<maintenance>> {
|
|
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<maintenance>}
|
|
*/
|
|
static async getById(id: string): Promise<maintenance> {
|
|
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);
|
|
});
|
|
}
|
|
}
|