enable public report

This commit is contained in:
Julian Krauser 2025-07-16 12:24:50 +02:00
parent 8f563d1058
commit 41c3093754
21 changed files with 307 additions and 19 deletions

View file

@ -79,7 +79,10 @@ export async function getDamageReportById(req: Request, res: Response): Promise<
*/
export async function createDamageReport(req: Request, res: Response): Promise<any> {
const description = req.body.description;
const location = req.body.location;
const note = req.body.note;
const reportedBy = req.body.reportedBy;
const images = req.files as Express.Multer.File[];
const affectedId = req.body.affectedId;
const affected = req.body.affected;
@ -88,8 +91,10 @@ export async function createDamageReport(req: Request, res: Response): Promise<a
let createDamageReport: CreateDamageReportCommand = {
description,
location,
note,
reportedBy,
imageCount: 0,
images: images.map((i) => i.filename),
affectedId,
affected,
};

View file

@ -12,6 +12,17 @@ import { FileSystemHelper } from "../helpers/fileSystemHelper";
import { SocketConnectionTypes } from "../enums/socketEnum";
import SocketServer from "../websocket";
import BadRequestException from "../exceptions/badRequestException";
import EquipmentService from "../service/unit/equipment/equipmentService";
import VehicleService from "../service/unit/vehicle/vehicleService";
import WearableService from "../service/unit/wearable/wearableService";
import EquipmentFactory from "../factory/admin/unit/equipment/equipment";
import VehicleFactory from "../factory/admin/unit/vehicle/vehicle";
import WearableFactory from "../factory/admin/unit/wearable/wearable";
import { MinifiedEquipmentViewModel } from "../viewmodel/admin/unit/equipment/equipment.models";
import { MinifiedVehicleViewModel } from "../viewmodel/admin/unit/vehicle/vehicle.models";
import { MinifiedWearableViewModel } from "../viewmodel/admin/unit/wearable/wearable.models";
import DamageReportCommandHandler from "../command/unit/damageReportCommandHandler";
import { CreateDamageReportCommand } from "../command/unit/damageReportCommand";
/**
* @description get all calendar items by types or nscdr
@ -58,8 +69,8 @@ export async function getCalendarItemsByTypes(req: Request, res: Response): Prom
}
/**
* @description get all calendar items by types or nscdr
* @summary passphrase is passed as value pair like `type:passphrase`
* @description check if scanner session exists
* @summary existance is checked by room exists
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
@ -77,6 +88,58 @@ export async function checkScannerRoomExists(req: Request, res: Response): Promi
}
}
/**
* @description get equipment, vehicle, wearable by code
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function searchStuffByCode(req: Request, res: Response): Promise<any> {
let code = req.query.code.toString();
let e = await EquipmentService.getAllByCode(code);
let v = await VehicleService.getAllByCode(code);
let w = await WearableService.getAllByCode(code);
res.json([
...EquipmentFactory.mapToBaseMinifed(e),
...VehicleFactory.mapToBaseMinifed(v),
...WearableFactory.mapToBaseMinifed(w),
]);
}
/**
* @description create damagereport to equipment, vehicle, wearable
* @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 related = (req.body.related ? JSON.parse(req.body.related) : undefined) as
| undefined
| MinifiedEquipmentViewModel
| MinifiedVehicleViewModel
| MinifiedWearableViewModel;
const description = req.body.description;
const location = req.body.location;
const note = req.body.note;
const reportedBy = req.body.reportedBy;
const images = req.files as Express.Multer.File[];
let createDamageReport: CreateDamageReportCommand = {
description: description,
location: location,
note: note,
reportedBy: reportedBy,
images: images.map((i) => i.filename),
affectedId: related ? related.id : undefined,
affected: related ? related.assigned : undefined,
};
await DamageReportCommandHandler.create(createDamageReport);
res.sendStatus(204);
}
/**
* @description get configuration of UI
* @param req {Request} Express req object
@ -91,6 +154,7 @@ export async function getApplicationConfig(req: Request, res: Response): Promise
"club.website": SettingHelper.getSetting("club.website"),
"app.custom_login_message": SettingHelper.getSetting("app.custom_login_message"),
"app.show_link_to_calendar": SettingHelper.getSetting("app.show_link_to_calendar"),
"app.show_link_to_damagereport": SettingHelper.getSetting("app.show_link_to_damagereport"),
};
res.json(config);