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 * @description delete equipment
* @param {DeleteEquipmentCommand} deleteEquipment * @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 * @description delete force
* @param {DeleteForceCommand} deleteForce * @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 * @description delete vehicle
* @param {DeleteVehicleCommand} deleteVehicle * @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 code = req.body.code || null;
const type = req.body.type || null; const type = req.body.type || null;
const name = req.body.name; const name = req.body.name;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let createEquipment: CreateEquipmentCommand = { let createEquipment: CreateEquipmentCommand = {
code, code,
@ -99,8 +99,8 @@ export async function updateEquipmentById(req: Request, res: Response): Promise<
const code = req.body.code || null; const code = req.body.code || null;
const type = req.body.type || null; const type = req.body.type || null;
const name = req.body.name; const name = req.body.name;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let updateEquipment: UpdateEquipmentCommand = { let updateEquipment: UpdateEquipmentCommand = {
id: equipmentId, id: equipmentId,
@ -115,6 +115,20 @@ export async function updateEquipmentById(req: Request, res: Response): Promise<
res.sendStatus(204); 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 * @description delete equipment by id
* @param req {Request} Express req object * @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 firstname = req.body.firstname;
const lastname = req.body.lastname; const lastname = req.body.lastname;
const nameaffix = req.body.nameaffix; const nameaffix = req.body.nameaffix;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let createForce: CreateForceCommand = { let createForce: CreateForceCommand = {
firstname, firstname,
@ -102,8 +102,8 @@ export async function updateForceById(req: Request, res: Response): Promise<any>
const firstname = req.body.firstname; const firstname = req.body.firstname;
const lastname = req.body.lastname; const lastname = req.body.lastname;
const nameaffix = req.body.nameaffix; const nameaffix = req.body.nameaffix;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let updateForce: UpdateForceCommand = { let updateForce: UpdateForceCommand = {
id: forceId, id: forceId,
@ -119,6 +119,20 @@ export async function updateForceById(req: Request, res: Response): Promise<any>
res.sendStatus(204); 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 * @description delete force by id
* @param req {Request} Express req object * @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 code = req.body.code || null;
const type = req.body.type || null; const type = req.body.type || null;
const name = req.body.name; const name = req.body.name;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let createVehicle: CreateVehicleCommand = { let createVehicle: CreateVehicleCommand = {
code, code,
@ -99,8 +99,8 @@ export async function updateVehicleById(req: Request, res: Response): Promise<an
const code = req.body.code || null; const code = req.body.code || null;
const type = req.body.type || null; const type = req.body.type || null;
const name = req.body.name; const name = req.body.name;
const commissioned = req.body.commissioned || undefined; const commissioned = req.body.commissioned || null;
const decommissioned = req.body.decommissioned || undefined; const decommissioned = req.body.decommissioned || null;
let updateVehicle: UpdateVehicleCommand = { let updateVehicle: UpdateVehicleCommand = {
id: vehicleId, id: vehicleId,
@ -115,6 +115,20 @@ export async function updateVehicleById(req: Request, res: Response): Promise<an
res.sendStatus(204); 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 * @description delete vehicle by id
* @param req {Request} Express req object * @param req {Request} Express req object

View file

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

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express"; import express, { Request, Response } from "express";
import { import {
createEquipment, createEquipment,
decommissionEquipmentById,
deleteEquipmentById, deleteEquipmentById,
getAllEquipments, getAllEquipments,
getEquipmentById, 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( router.delete(
"/:id", "/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "equipment"), PermissionHelper.passCheckMiddleware("delete", "operation", "equipment"),

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express"; import express, { Request, Response } from "express";
import { import {
createForce, createForce,
decommissionForceById,
deleteForceById, deleteForceById,
getAllForces, getAllForces,
getForceById, 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( router.delete(
"/:id", "/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "force"), PermissionHelper.passCheckMiddleware("delete", "operation", "force"),

View file

@ -1,6 +1,7 @@
import express, { Request, Response } from "express"; import express, { Request, Response } from "express";
import { import {
createVehicle, createVehicle,
decommissionVehicleById,
deleteVehicleById, deleteVehicleById,
getAllVehicles, getAllVehicles,
getVehicleById, 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( router.delete(
"/:id", "/:id",
PermissionHelper.passCheckMiddleware("delete", "operation", "vehicle"), PermissionHelper.passCheckMiddleware("delete", "operation", "vehicle"),