feat: vehicle/equipment type system, equipment checklist support, and checklist overview redesign
This commit is contained in:
58
backend/src/routes/ausruestungTyp.routes.ts
Normal file
58
backend/src/routes/ausruestungTyp.routes.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { Router } from 'express';
|
||||
import ausruestungTypController from '../controllers/ausruestungTyp.controller';
|
||||
import { authenticate } from '../middleware/auth.middleware';
|
||||
import { requirePermission } from '../middleware/rbac.middleware';
|
||||
|
||||
const router = Router();
|
||||
|
||||
// List all equipment types
|
||||
router.get(
|
||||
'/',
|
||||
authenticate,
|
||||
ausruestungTypController.getAll.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
// Equipment-specific type management (BEFORE /:id to avoid route conflicts)
|
||||
router.get(
|
||||
'/equipment/:ausruestungId',
|
||||
authenticate,
|
||||
ausruestungTypController.getTypesForEquipment.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
router.put(
|
||||
'/equipment/:ausruestungId',
|
||||
authenticate,
|
||||
requirePermission('ausruestung:manage_types'),
|
||||
ausruestungTypController.setTypesForEquipment.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
// Get single equipment type
|
||||
router.get(
|
||||
'/:id',
|
||||
authenticate,
|
||||
ausruestungTypController.getById.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
// CRUD — permission-protected
|
||||
router.post(
|
||||
'/',
|
||||
authenticate,
|
||||
requirePermission('ausruestung:manage_types'),
|
||||
ausruestungTypController.create.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
router.patch(
|
||||
'/:id',
|
||||
authenticate,
|
||||
requirePermission('ausruestung:manage_types'),
|
||||
ausruestungTypController.update.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/:id',
|
||||
authenticate,
|
||||
requirePermission('ausruestung:manage_types'),
|
||||
ausruestungTypController.deleteTyp.bind(ausruestungTypController)
|
||||
);
|
||||
|
||||
export default router;
|
||||
@@ -13,6 +13,14 @@ router.get(
|
||||
checklistController.getOverdueChecklists.bind(checklistController)
|
||||
);
|
||||
|
||||
// --- Overview ---
|
||||
router.get(
|
||||
'/overview',
|
||||
authenticate,
|
||||
requirePermission('checklisten:view'),
|
||||
checklistController.getOverviewItems.bind(checklistController)
|
||||
);
|
||||
|
||||
// --- Vorlagen (Templates) ---
|
||||
router.get(
|
||||
'/vorlagen',
|
||||
@@ -124,6 +132,42 @@ router.get(
|
||||
checklistController.getDueChecklists.bind(checklistController)
|
||||
);
|
||||
|
||||
// --- Equipment-specific items ---
|
||||
router.get(
|
||||
'/equipment/:ausruestungId/vorlagen',
|
||||
authenticate,
|
||||
requirePermission('checklisten:view'),
|
||||
checklistController.getTemplatesForEquipment.bind(checklistController)
|
||||
);
|
||||
|
||||
router.get(
|
||||
'/equipment/:ausruestungId/items',
|
||||
authenticate,
|
||||
requirePermission('checklisten:view'),
|
||||
checklistController.getEquipmentItems.bind(checklistController)
|
||||
);
|
||||
|
||||
router.post(
|
||||
'/equipment/:ausruestungId/items',
|
||||
authenticate,
|
||||
requirePermission('checklisten:manage_templates'),
|
||||
checklistController.addEquipmentItem.bind(checklistController)
|
||||
);
|
||||
|
||||
router.patch(
|
||||
'/equipment/:ausruestungId/items/:itemId',
|
||||
authenticate,
|
||||
requirePermission('checklisten:manage_templates'),
|
||||
checklistController.updateEquipmentItem.bind(checklistController)
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/equipment/:ausruestungId/items/:itemId',
|
||||
authenticate,
|
||||
requirePermission('checklisten:manage_templates'),
|
||||
checklistController.deleteEquipmentItem.bind(checklistController)
|
||||
);
|
||||
|
||||
// --- Ausführungen (Executions) ---
|
||||
router.get(
|
||||
'/ausfuehrungen',
|
||||
|
||||
Reference in New Issue
Block a user