finish base data

This commit is contained in:
Julian Krauser 2025-02-19 12:57:22 +01:00
parent 0d9aed947e
commit 4e6c6b138c
10 changed files with 144 additions and 13 deletions

View file

@ -54,6 +54,26 @@ export default abstract class EquipmentCommandHandler {
});
}
/**
* @description decommission equipment
* @param {string} equipmentId
* @returns {Promise<void>}
*/
static async decommission(equipmentId: string): Promise<void> {
return await dataSource
.createQueryBuilder()
.update(equipment)
.set({
decommissioned: new Date(),
})
.where("id = :id", { id: equipmentId })
.execute()
.then(() => {})
.catch((err) => {
throw new DatabaseActionException("UPDATE", "equipment", err);
});
}
/**
* @description delete equipment
* @param {DeleteEquipmentCommand} deleteEquipment

View file

@ -56,6 +56,26 @@ export default abstract class ForceCommandHandler {
});
}
/**
* @description decommission force
* @param {string} forceId
* @returns {Promise<void>}
*/
static async decommission(forceId: string): Promise<void> {
return await dataSource
.createQueryBuilder()
.update(force)
.set({
decommissioned: new Date(),
})
.where("id = :id", { id: forceId })
.execute()
.then(() => {})
.catch((err) => {
throw new DatabaseActionException("UPDATE", "force", err);
});
}
/**
* @description delete force
* @param {DeleteForceCommand} deleteForce

View file

@ -54,6 +54,26 @@ export default abstract class VehicleCommandHandler {
});
}
/**
* @description decommission vehicle
* @param {string} vehicleId
* @returns {Promise<void>}
*/
static async decommission(vehicleId: string): Promise<void> {
return await dataSource
.createQueryBuilder()
.update(vehicle)
.set({
decommissioned: new Date(),
})
.where("id = :id", { id: vehicleId })
.execute()
.then(() => {})
.catch((err) => {
throw new DatabaseActionException("UPDATE", "vehicle", err);
});
}
/**
* @description delete vehicle
* @param {DeleteVehicleCommand} deleteVehicle

View file

@ -73,8 +73,8 @@ export async function createEquipment(req: Request, res: Response): Promise<any>
const code = req.body.code || null;
const type = req.body.type || null;
const name = req.body.name;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let createEquipment: CreateEquipmentCommand = {
code,
@ -99,8 +99,8 @@ export async function updateEquipmentById(req: Request, res: Response): Promise<
const code = req.body.code || null;
const type = req.body.type || null;
const name = req.body.name;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let updateEquipment: UpdateEquipmentCommand = {
id: equipmentId,
@ -115,6 +115,20 @@ export async function updateEquipmentById(req: Request, res: Response): Promise<
res.sendStatus(204);
}
/**
* @description decommission equipment by id
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function decommissionEquipmentById(req: Request, res: Response): Promise<any> {
const equipmentId = req.params.id;
await EquipmentCommandHandler.decommission(equipmentId);
res.sendStatus(204);
}
/**
* @description delete equipment by id
* @param req {Request} Express req object

View file

@ -74,8 +74,8 @@ export async function createForce(req: Request, res: Response): Promise<any> {
const firstname = req.body.firstname;
const lastname = req.body.lastname;
const nameaffix = req.body.nameaffix;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let createForce: CreateForceCommand = {
firstname,
@ -102,8 +102,8 @@ export async function updateForceById(req: Request, res: Response): Promise<any>
const firstname = req.body.firstname;
const lastname = req.body.lastname;
const nameaffix = req.body.nameaffix;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let updateForce: UpdateForceCommand = {
id: forceId,
@ -119,6 +119,20 @@ export async function updateForceById(req: Request, res: Response): Promise<any>
res.sendStatus(204);
}
/**
* @description decommission force by id
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function decommissionForceById(req: Request, res: Response): Promise<any> {
const forceId = req.params.id;
await ForceCommandHandler.decommission(forceId);
res.sendStatus(204);
}
/**
* @description delete force by id
* @param req {Request} Express req object

View file

@ -73,8 +73,8 @@ export async function createVehicle(req: Request, res: Response): Promise<any> {
const code = req.body.code || null;
const type = req.body.type || null;
const name = req.body.name;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let createVehicle: CreateVehicleCommand = {
code,
@ -99,8 +99,8 @@ export async function updateVehicleById(req: Request, res: Response): Promise<an
const code = req.body.code || null;
const type = req.body.type || null;
const name = req.body.name;
const commissioned = req.body.commissioned || undefined;
const decommissioned = req.body.decommissioned || undefined;
const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || null;
let updateVehicle: UpdateVehicleCommand = {
id: vehicleId,
@ -115,6 +115,20 @@ export async function updateVehicleById(req: Request, res: Response): Promise<an
res.sendStatus(204);
}
/**
* @description decommission vehicle by id
* @param req {Request} Express req object
* @param res {Response} Express res object
* @returns {Promise<*>}
*/
export async function decommissionVehicleById(req: Request, res: Response): Promise<any> {
const vehicleId = req.params.id;
await VehicleCommandHandler.decommission(vehicleId);
res.sendStatus(204);
}
/**
* @description delete vehicle by id
* @param req {Request} Express req object

View file

@ -13,6 +13,8 @@ import { force } from "./entity/configuration/force";
import { reset } from "./entity/reset";
import { CreateSchema1739697068682 } from "./migrations/1739697068682-CreateSchema";
import { vehicle } from "./entity/configuration/vehicle";
import { equipment } from "./entity/configuration/equipment";
const dataSource = new DataSource({
type: DB_TYPE as any,
@ -24,7 +26,7 @@ const dataSource = new DataSource({
synchronize: false,
logging: process.env.NODE_ENV ? true : ["schema", "error", "warn", "log", "migration"],
bigNumberStrings: false,
entities: [user, refresh, invite, reset, userPermission, role, rolePermission, force],
entities: [user, refresh, invite, reset, userPermission, role, rolePermission, force, vehicle, equipment],
migrations: [CreateSchema1739697068682],
migrationsRun: true,
migrationsTransactionMode: "each",

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express";
import {
createEquipment,
decommissionEquipmentById,
deleteEquipmentById,
getAllEquipments,
getEquipmentById,
@ -39,6 +40,14 @@ router.patch(
}
);
router.patch(
"/:id/decommission",
PermissionHelper.passCheckMiddleware("update", "operation", "equipment"),
async (req: Request, res: Response) => {
await decommissionEquipmentById(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "equipment"),

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express";
import {
createForce,
decommissionForceById,
deleteForceById,
getAllForces,
getForceById,
@ -39,6 +40,14 @@ router.patch(
}
);
router.patch(
"/:id/decommission",
PermissionHelper.passCheckMiddleware("update", "operation", "force"),
async (req: Request, res: Response) => {
await decommissionForceById(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "force"),

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express";
import {
createVehicle,
decommissionVehicleById,
deleteVehicleById,
getAllVehicles,
getVehicleById,
@ -39,6 +40,14 @@ router.patch(
}
);
router.patch(
"/:id/decommission",
PermissionHelper.passCheckMiddleware("update", "operation", "vehicle"),
async (req: Request, res: Response) => {
await decommissionVehicleById(req, res);
}
);
router.delete(
"/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "vehicle"),