import { Request, Response } from "express"; import EquipmentService from "../../../service/unit/equipment/equipmentService"; import EquipmentFactory from "../../../factory/admin/unit/equipment/equipment"; import { CreateEquipmentCommand, DeleteEquipmentCommand, UpdateEquipmentCommand, } from "../../../command/unit/equipment/equipmentCommand"; import EquipmentCommandHandler from "../../../command/unit/equipment/equipmentCommandHandler"; /** * @description get all equipments * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getAllEquipments(req: Request, res: Response): Promise { let offset = parseInt((req.query.offset as string) ?? "0"); let count = parseInt((req.query.count as string) ?? "25"); let search = (req.query.search as string) ?? ""; let noLimit = req.query.noLimit === "true"; let ids = ((req.query.ids ?? "") as string).split(",").filter((i) => i); let [equipments, total] = await EquipmentService.getAll({ offset, count, search, noLimit, ids }); res.json({ equipments: equipments, total: total, offset: offset, count: count, }); } /** * @description get equipment by id * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getEquipmentById(req: Request, res: Response): Promise { const equipmentId = req.params.id; let equipment = await EquipmentService.getById(equipmentId); res.json(EquipmentFactory.mapToSingle(equipment)); } /** * @description get equipment by Ids * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getEquipmentsByIds(req: Request, res: Response): Promise { let ids = req.body.ids as Array; let [equipments, total] = await EquipmentService.getAll({ noLimit: true, ids }); res.json({ equipments: EquipmentFactory.mapToBase(equipments), total: total, offset: 0, count: total, }); } /** * @description create equipment * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function createEquipment(req: Request, res: Response): Promise { const salutationId = parseInt(req.body.salutationId); let createEquipment: CreateEquipmentCommand = { name: "", location: "", commissioned: undefined, equipmentTypeId: "", }; let equipmentId = await EquipmentCommandHandler.create(createEquipment); res.status(200).send(equipmentId); } /** * @description update equipment by id * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function updateEquipmentById(req: Request, res: Response): Promise { const equipmentId = req.params.id; const salutationId = parseInt(req.body.salutationId); let updateEquipment: UpdateEquipmentCommand = { id: equipmentId, name: "", location: "", commissioned: undefined, }; await EquipmentCommandHandler.update(updateEquipment); res.sendStatus(204); } /** * @description delete equipment by id * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function deleteEquipmentById(req: Request, res: Response): Promise { const equipmentId = req.params.id; let deleteEquipment: DeleteEquipmentCommand = { id: equipmentId, }; await EquipmentCommandHandler.delete(deleteEquipment); res.sendStatus(204); }