change according to connection from frontend
This commit is contained in:
parent
2609ecc1bf
commit
e3db523a0e
36 changed files with 611 additions and 173 deletions
113
src/controller/admin/unit/damageReportController.ts
Normal file
113
src/controller/admin/unit/damageReportController.ts
Normal file
|
@ -0,0 +1,113 @@
|
|||
import { Request, Response } from "express";
|
||||
import DamageReportService from "../../../service/unit/damageReportService";
|
||||
import DamageReportFactory from "../../../factory/admin/unit/damageReport";
|
||||
import { CreateDamageReportCommand, UpdateDamageReportCommand } from "../../../command/unit/damageReportCommand";
|
||||
import DamageReportCommandHandler from "../../../command/unit/damageReportCommandHandler";
|
||||
import BadRequestException from "../../../exceptions/badRequestException";
|
||||
|
||||
/**
|
||||
* @description get all damageReports by status
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllDamageReportsByStatus(req: Request, res: Response): Promise<any> {
|
||||
let done = req.query.done === "true";
|
||||
let offset = parseInt((req.query.offset as string) ?? "0");
|
||||
let count = parseInt((req.query.count as string) ?? "25");
|
||||
let noLimit = req.query.noLimit === "true";
|
||||
|
||||
let [damageReports, total] = await DamageReportService.getAll(done, { offset, count, noLimit });
|
||||
|
||||
res.json({
|
||||
damageReports: DamageReportFactory.mapToBase(damageReports),
|
||||
total: total,
|
||||
offset: offset,
|
||||
count: count,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get all damageReports for related id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getAllDamageReportsForRelated(req: Request, res: Response): Promise<any> {
|
||||
let relation = req.params.related as "vehicle" | "equipment";
|
||||
let relationId = req.params.relatedId as string;
|
||||
let offset = parseInt((req.query.offset as string) ?? "0");
|
||||
let count = parseInt((req.query.count as string) ?? "25");
|
||||
let noLimit = req.query.noLimit === "true";
|
||||
|
||||
let where = relation === "equipment" ? { equipmentId: relationId } : { vehicleId: relationId };
|
||||
let [damageReports, total] = await DamageReportService.getAllForRelated(where, { offset, count, noLimit });
|
||||
|
||||
res.json({
|
||||
damageReports: DamageReportFactory.mapToBase(damageReports),
|
||||
total: total,
|
||||
offset: offset,
|
||||
count: count,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get damageReport by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function getDamageReportById(req: Request, res: Response): Promise<any> {
|
||||
const damageReportId = req.params.id;
|
||||
let damageReport = await DamageReportService.getById(damageReportId);
|
||||
|
||||
res.json(DamageReportFactory.mapToSingle(damageReport));
|
||||
}
|
||||
|
||||
/**
|
||||
* @description create damageReport
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function createDamageReport(req: Request, res: Response): Promise<any> {
|
||||
const description = req.body.description;
|
||||
const reportedBy = req.body.reportedBy;
|
||||
const affectedId = req.body.affectedId;
|
||||
const affected = req.body.affected;
|
||||
|
||||
if (affected != "equipment" && affected != "vehicle" && affected != "wearable")
|
||||
throw new BadRequestException("set assigned to equipment or vehicle or wearable");
|
||||
|
||||
let createDamageReport: CreateDamageReportCommand = {
|
||||
description,
|
||||
reportedBy,
|
||||
imageCount: 0,
|
||||
affectedId,
|
||||
affected,
|
||||
};
|
||||
let damageReportId = await DamageReportCommandHandler.create(createDamageReport);
|
||||
|
||||
res.status(200).send(damageReportId);
|
||||
}
|
||||
|
||||
/**
|
||||
* @description update damageReport by id
|
||||
* @param req {Request} Express req object
|
||||
* @param res {Response} Express res object
|
||||
* @returns {Promise<*>}
|
||||
*/
|
||||
export async function updateDamageReportById(req: Request, res: Response): Promise<any> {
|
||||
const damageReportId = req.params.id;
|
||||
const status = req.body.status;
|
||||
const done = req.body.done;
|
||||
|
||||
let updateDamageReport: UpdateDamageReportCommand = {
|
||||
id: damageReportId,
|
||||
status,
|
||||
done,
|
||||
};
|
||||
await DamageReportCommandHandler.update(updateDamageReport);
|
||||
|
||||
res.sendStatus(204);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue