mirror of
https://github.com/donpat1to/Schichtenplaner.git
synced 2025-11-30 22:45:46 +01:00
34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
// backend/src/routes/employees.ts
|
|
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';
|
|
|
|
const router = express.Router();
|
|
|
|
// Alle Routes benötigen Authentication
|
|
router.use(authMiddleware);
|
|
|
|
// Employee CRUD Routes
|
|
router.get('/', authMiddleware, getEmployees);
|
|
router.get('/:id', requireRole(['admin', 'instandhalter']), getEmployee);
|
|
router.post('/', requireRole(['admin']), createEmployee);
|
|
router.put('/:id', requireRole(['admin']), updateEmployee);
|
|
router.delete('/:id', requireRole(['admin']), deleteEmployee);
|
|
router.put('/:id/password', authMiddleware, changePassword);
|
|
router.put('/:id/last-login', authMiddleware, updateLastLogin);
|
|
|
|
// Availability Routes
|
|
router.get('/:employeeId/availabilities', authMiddleware, getAvailabilities);
|
|
router.put('/:employeeId/availabilities', authMiddleware, updateAvailabilities);
|
|
|
|
export default router; |