fetch available by mission
This commit is contained in:
parent
cc811717e1
commit
c09a14e6ff
10 changed files with 167 additions and 3 deletions
|
@ -7,6 +7,7 @@ import {
|
||||||
UpdateEquipmentCommand,
|
UpdateEquipmentCommand,
|
||||||
} from "../../../command/configuration/equipment/equipmentCommand";
|
} from "../../../command/configuration/equipment/equipmentCommand";
|
||||||
import EquipmentCommandHandler from "../../../command/configuration/equipment/equipmentCommandHandler";
|
import EquipmentCommandHandler from "../../../command/configuration/equipment/equipmentCommandHandler";
|
||||||
|
import MissionService from "../../../service/operation/missionService";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description get all equipments
|
* @description get all equipments
|
||||||
|
@ -63,6 +64,20 @@ export async function getEquipmentById(req: Request, res: Response): Promise<any
|
||||||
res.json(EquipmentFactory.mapToSingle(equipment));
|
res.json(EquipmentFactory.mapToSingle(equipment));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available equipments by missionId
|
||||||
|
* @param req {Request} Express req object
|
||||||
|
* @param res {Response} Express res object
|
||||||
|
* @returns {Promise<*>}
|
||||||
|
*/
|
||||||
|
export async function getAvailabeEquipmentsByMission(req: Request, res: Response): Promise<any> {
|
||||||
|
const missionId = req.params.missionId;
|
||||||
|
let mission = await MissionService.getById(missionId);
|
||||||
|
let equipments = await EquipmentService.getAvailable(mission.mission_start ?? new Date());
|
||||||
|
|
||||||
|
res.json(EquipmentFactory.mapToBase(equipments));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description create equipment
|
* @description create equipment
|
||||||
* @param req {Request} Express req object
|
* @param req {Request} Express req object
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
UpdateForceCommand,
|
UpdateForceCommand,
|
||||||
} from "../../../command/configuration/force/forceCommand";
|
} from "../../../command/configuration/force/forceCommand";
|
||||||
import ForceCommandHandler from "../../../command/configuration/force/forceCommandHandler";
|
import ForceCommandHandler from "../../../command/configuration/force/forceCommandHandler";
|
||||||
|
import MissionService from "../../../service/operation/missionService";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description get all forces
|
* @description get all forces
|
||||||
|
@ -63,6 +64,20 @@ export async function getForceById(req: Request, res: Response): Promise<any> {
|
||||||
res.json(ForceFactory.mapToSingle(force));
|
res.json(ForceFactory.mapToSingle(force));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available forces by missionId
|
||||||
|
* @param req {Request} Express req object
|
||||||
|
* @param res {Response} Express res object
|
||||||
|
* @returns {Promise<*>}
|
||||||
|
*/
|
||||||
|
export async function getAvailabeForcesByMission(req: Request, res: Response): Promise<any> {
|
||||||
|
const missionId = req.params.missionId;
|
||||||
|
let mission = await MissionService.getById(missionId);
|
||||||
|
let forces = await ForceService.getAvailable(mission.mission_start ?? new Date());
|
||||||
|
|
||||||
|
res.json(ForceFactory.mapToBase(forces));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description create force
|
* @description create force
|
||||||
* @param req {Request} Express req object
|
* @param req {Request} Express req object
|
||||||
|
|
|
@ -7,6 +7,7 @@ import {
|
||||||
UpdateVehicleCommand,
|
UpdateVehicleCommand,
|
||||||
} from "../../../command/configuration/vehicle/vehicleCommand";
|
} from "../../../command/configuration/vehicle/vehicleCommand";
|
||||||
import VehicleCommandHandler from "../../../command/configuration/vehicle/vehicleCommandHandler";
|
import VehicleCommandHandler from "../../../command/configuration/vehicle/vehicleCommandHandler";
|
||||||
|
import MissionService from "../../../service/operation/missionService";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description get all vehicles
|
* @description get all vehicles
|
||||||
|
@ -63,6 +64,20 @@ export async function getVehicleById(req: Request, res: Response): Promise<any>
|
||||||
res.json(VehicleFactory.mapToSingle(vehicle));
|
res.json(VehicleFactory.mapToSingle(vehicle));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available vehicles by missionId
|
||||||
|
* @param req {Request} Express req object
|
||||||
|
* @param res {Response} Express res object
|
||||||
|
* @returns {Promise<*>}
|
||||||
|
*/
|
||||||
|
export async function getAvailabeVehiclesByMission(req: Request, res: Response): Promise<any> {
|
||||||
|
const missionId = req.params.missionId;
|
||||||
|
let mission = await MissionService.getById(missionId);
|
||||||
|
let vehicles = await VehicleService.getAvailable(mission.mission_start ?? new Date());
|
||||||
|
|
||||||
|
res.json(VehicleFactory.mapToBase(vehicles));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description create vehicle
|
* @description create vehicle
|
||||||
* @param req {Request} Express req object
|
* @param req {Request} Express req object
|
||||||
|
|
|
@ -4,6 +4,7 @@ import {
|
||||||
decommissionEquipmentById,
|
decommissionEquipmentById,
|
||||||
deleteEquipmentById,
|
deleteEquipmentById,
|
||||||
getAllEquipments,
|
getAllEquipments,
|
||||||
|
getAvailabeEquipmentsByMission,
|
||||||
getEquipmentById,
|
getEquipmentById,
|
||||||
getEquipmentsByIds,
|
getEquipmentsByIds,
|
||||||
updateEquipmentById,
|
updateEquipmentById,
|
||||||
|
@ -24,6 +25,10 @@ router.get("/:id", async (req: Request, res: Response) => {
|
||||||
await getEquipmentById(req, res);
|
await getEquipmentById(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get("/available/:missionId", async (req: Request, res: Response) => {
|
||||||
|
await getAvailabeEquipmentsByMission(req, res);
|
||||||
|
});
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
"/",
|
"/",
|
||||||
PermissionHelper.passCheckMiddleware("create", "operation", "equipment"),
|
PermissionHelper.passCheckMiddleware("create", "operation", "equipment"),
|
||||||
|
|
|
@ -6,6 +6,7 @@ import {
|
||||||
getAllForces,
|
getAllForces,
|
||||||
getForceById,
|
getForceById,
|
||||||
getForcesByIds,
|
getForcesByIds,
|
||||||
|
getAvailabeForcesByMission,
|
||||||
updateForceById,
|
updateForceById,
|
||||||
} from "../../../controller/admin/configuration/forceController";
|
} from "../../../controller/admin/configuration/forceController";
|
||||||
import PermissionHelper from "../../../helpers/permissionHelper";
|
import PermissionHelper from "../../../helpers/permissionHelper";
|
||||||
|
@ -24,6 +25,10 @@ router.get("/:id", async (req: Request, res: Response) => {
|
||||||
await getForceById(req, res);
|
await getForceById(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get("/available/:missionId", async (req: Request, res: Response) => {
|
||||||
|
await getAvailabeForcesByMission(req, res);
|
||||||
|
});
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
"/",
|
"/",
|
||||||
PermissionHelper.passCheckMiddleware("create", "operation", "force"),
|
PermissionHelper.passCheckMiddleware("create", "operation", "force"),
|
||||||
|
|
|
@ -4,6 +4,7 @@ import {
|
||||||
decommissionVehicleById,
|
decommissionVehicleById,
|
||||||
deleteVehicleById,
|
deleteVehicleById,
|
||||||
getAllVehicles,
|
getAllVehicles,
|
||||||
|
getAvailabeVehiclesByMission,
|
||||||
getVehicleById,
|
getVehicleById,
|
||||||
getVehiclesByIds,
|
getVehiclesByIds,
|
||||||
updateVehicleById,
|
updateVehicleById,
|
||||||
|
@ -24,6 +25,10 @@ router.get("/:id", async (req: Request, res: Response) => {
|
||||||
await getVehicleById(req, res);
|
await getVehicleById(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get("/available/:missionId", async (req: Request, res: Response) => {
|
||||||
|
await getAvailabeVehiclesByMission(req, res);
|
||||||
|
});
|
||||||
|
|
||||||
router.post(
|
router.post(
|
||||||
"/",
|
"/",
|
||||||
PermissionHelper.passCheckMiddleware("create", "operation", "vehicle"),
|
PermissionHelper.passCheckMiddleware("create", "operation", "vehicle"),
|
||||||
|
|
|
@ -16,9 +16,30 @@ var router = express.Router({ mergeParams: true });
|
||||||
|
|
||||||
router.use("/mission", PermissionHelper.passCheckMiddleware("read", "operation", "mission"), mission);
|
router.use("/mission", PermissionHelper.passCheckMiddleware("read", "operation", "mission"), mission);
|
||||||
|
|
||||||
router.use("/equipment", PermissionHelper.passCheckMiddleware("read", "configuration", "equipment"), equipment);
|
router.use(
|
||||||
router.use("/force", PermissionHelper.passCheckMiddleware("read", "configuration", "force"), force);
|
"/equipment",
|
||||||
router.use("/vehicle", PermissionHelper.passCheckMiddleware("read", "configuration", "vehicle"), vehicle);
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermissions: "read", section: "configuration", module: "equipment" },
|
||||||
|
{ requiredPermissions: "read", section: "operation", module: "mission" },
|
||||||
|
]),
|
||||||
|
equipment
|
||||||
|
);
|
||||||
|
router.use(
|
||||||
|
"/force",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermissions: "read", section: "configuration", module: "force" },
|
||||||
|
{ requiredPermissions: "read", section: "operation", module: "mission" },
|
||||||
|
]),
|
||||||
|
force
|
||||||
|
);
|
||||||
|
router.use(
|
||||||
|
"/vehicle",
|
||||||
|
PermissionHelper.passCheckSomeMiddleware([
|
||||||
|
{ requiredPermissions: "read", section: "configuration", module: "vehicle" },
|
||||||
|
{ requiredPermissions: "read", section: "operation", module: "mission" },
|
||||||
|
]),
|
||||||
|
vehicle
|
||||||
|
);
|
||||||
|
|
||||||
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
|
router.use("/role", PermissionHelper.passCheckMiddleware("read", "management", "role"), role);
|
||||||
router.use(
|
router.use(
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Brackets } from "typeorm";
|
||||||
import { dataSource } from "../../data-source";
|
import { dataSource } from "../../data-source";
|
||||||
import { equipment } from "../../entity/configuration/equipment";
|
import { equipment } from "../../entity/configuration/equipment";
|
||||||
import DatabaseActionException from "../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../exceptions/databaseActionException";
|
||||||
|
@ -75,4 +76,30 @@ export default abstract class EquipmentService {
|
||||||
throw new DatabaseActionException("SELECT", "equipment", err);
|
throw new DatabaseActionException("SELECT", "equipment", err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available equipments
|
||||||
|
* @returns {Promise<Array<equipment>>}
|
||||||
|
*/
|
||||||
|
static async getAvailable(keyDate: Date): Promise<Array<equipment>> {
|
||||||
|
return await dataSource
|
||||||
|
.getRepository(equipment)
|
||||||
|
.createQueryBuilder("equipment")
|
||||||
|
.where("equipment.commissioned <= :keyDate_start", { keyDate_start: keyDate })
|
||||||
|
.andWhere(
|
||||||
|
new Brackets((qb) =>
|
||||||
|
qb
|
||||||
|
.where("equipment.decommissioned IS NULL")
|
||||||
|
.orWhere("equipment.decommissioned >= :keyDate_end", { keyDate_end: keyDate })
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.orderBy("equipment.name")
|
||||||
|
.getMany()
|
||||||
|
.then((res) => {
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
throw new DatabaseActionException("SELECT", "equipment", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Brackets } from "typeorm";
|
||||||
import { dataSource } from "../../data-source";
|
import { dataSource } from "../../data-source";
|
||||||
import { force } from "../../entity/configuration/force";
|
import { force } from "../../entity/configuration/force";
|
||||||
import DatabaseActionException from "../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../exceptions/databaseActionException";
|
||||||
|
@ -77,4 +78,32 @@ export default abstract class ForceService {
|
||||||
throw new DatabaseActionException("SELECT", "force", err);
|
throw new DatabaseActionException("SELECT", "force", err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available forces
|
||||||
|
* @returns {Promise<Array<force>>}
|
||||||
|
*/
|
||||||
|
static async getAvailable(keyDate: Date): Promise<Array<force>> {
|
||||||
|
return await dataSource
|
||||||
|
.getRepository(force)
|
||||||
|
.createQueryBuilder("force")
|
||||||
|
.where("force.commissioned <= :keyDate_start", { keyDate_start: keyDate })
|
||||||
|
.andWhere(
|
||||||
|
new Brackets((qb) =>
|
||||||
|
qb
|
||||||
|
.where("force.decommissioned IS NULL")
|
||||||
|
.orWhere("force.decommissioned >= :keyDate_end", { keyDate_end: keyDate })
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.orderBy("force.lastname")
|
||||||
|
.addOrderBy("force.firstname")
|
||||||
|
.addOrderBy("force.nameaffix")
|
||||||
|
.getMany()
|
||||||
|
.then((res) => {
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
throw new DatabaseActionException("SELECT", "force", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import { Brackets } from "typeorm";
|
||||||
import { dataSource } from "../../data-source";
|
import { dataSource } from "../../data-source";
|
||||||
import { vehicle } from "../../entity/configuration/vehicle";
|
import { vehicle } from "../../entity/configuration/vehicle";
|
||||||
import DatabaseActionException from "../../exceptions/databaseActionException";
|
import DatabaseActionException from "../../exceptions/databaseActionException";
|
||||||
|
@ -75,4 +76,30 @@ export default abstract class VehicleService {
|
||||||
throw new DatabaseActionException("SELECT", "vehicle", err);
|
throw new DatabaseActionException("SELECT", "vehicle", err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description get available vehicles
|
||||||
|
* @returns {Promise<Array<vehicle>>}
|
||||||
|
*/
|
||||||
|
static async getAvailable(keyDate: Date): Promise<Array<vehicle>> {
|
||||||
|
return await dataSource
|
||||||
|
.getRepository(vehicle)
|
||||||
|
.createQueryBuilder("vehicle")
|
||||||
|
.where("vehicle.commissioned <= :keyDate_start", { keyDate_start: keyDate })
|
||||||
|
.andWhere(
|
||||||
|
new Brackets((qb) =>
|
||||||
|
qb
|
||||||
|
.where("vehicle.decommissioned IS NULL")
|
||||||
|
.orWhere("vehicle.decommissioned >= :keyDate_end", { keyDate_end: keyDate })
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.orderBy("vehicle.name")
|
||||||
|
.getMany()
|
||||||
|
.then((res) => {
|
||||||
|
return res;
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
throw new DatabaseActionException("SELECT", "vehicle", err);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue