mirror of
https://github.com/donpat1to/Schichtenplaner.git
synced 2025-11-30 22:45:46 +01:00
45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
import express from 'express';
|
|
import { authMiddleware, requireRole } from '../middleware/auth.js';
|
|
import {
|
|
getEmployees,
|
|
getEmployee,
|
|
createEmployee,
|
|
updateEmployee,
|
|
deleteEmployee,
|
|
getAvailabilities,
|
|
updateAvailabilities,
|
|
changePassword,
|
|
updateLastLogin
|
|
} from '../controllers/employeeController.js';
|
|
import {
|
|
handleValidationErrors,
|
|
validateEmployee,
|
|
validateEmployeeUpdate,
|
|
validateChangePassword,
|
|
validateId,
|
|
validateEmployeeId,
|
|
validateAvailabilities,
|
|
validatePagination
|
|
} from '../middleware/validation.js';
|
|
|
|
const router = express.Router();
|
|
|
|
// Alle Routes benötigen Authentication
|
|
router.use(authMiddleware);
|
|
|
|
// Employee CRUD Routes
|
|
router.get('/', validatePagination, handleValidationErrors, authMiddleware, getEmployees);
|
|
router.get('/:id', validateId, handleValidationErrors, requireRole(['admin', 'maintenance']), getEmployee);
|
|
router.post('/', validateEmployee, handleValidationErrors, requireRole(['admin']), createEmployee);
|
|
router.put('/:id', validateId, validateEmployeeUpdate, handleValidationErrors, requireRole(['admin', 'maintenance']), updateEmployee);
|
|
router.delete('/:id', validateId, handleValidationErrors, requireRole(['admin']), deleteEmployee);
|
|
|
|
// Password & Login Routes
|
|
router.put('/:id/password', validateId, validateChangePassword, handleValidationErrors, authMiddleware, changePassword);
|
|
router.put('/:id/last-login', validateId, handleValidationErrors, authMiddleware, updateLastLogin);
|
|
|
|
// Availability Routes
|
|
router.get('/:employeeId/availabilities', validateEmployeeId, handleValidationErrors, authMiddleware, getAvailabilities);
|
|
router.put('/:employeeId/availabilities', validateEmployeeId, validateAvailabilities, handleValidationErrors, authMiddleware, updateAvailabilities);
|
|
|
|
export default router; |