- Add team_leader role with appropriate permissions - Add lastSeen timestamp for chat online indicator - Add needsFollowup flag to ucastnici table - Add getTodayCalendarCount endpoint for calendar badge - Add company reminders to calendar data - Enhance company search to include phone and contacts - Update routes to allow team_leader access to kurzy, services, timesheets Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
83 lines
2.1 KiB
JavaScript
83 lines
2.1 KiB
JavaScript
import express from 'express';
|
|
import * as eventController from '../controllers/event.controller.js';
|
|
import { authenticate } from '../middlewares/auth/authMiddleware.js';
|
|
import { validateBody, validateParams, validateQuery } from '../middlewares/security/validateInput.js';
|
|
import { createEventSchema, updateEventSchema } from '../validators/crm.validators.js';
|
|
import { z } from 'zod';
|
|
|
|
const router = express.Router();
|
|
|
|
const monthQuerySchema = z.object({
|
|
year: z.string().regex(/^\d{4}$/).optional(),
|
|
month: z.string().regex(/^(1[0-2]|[1-9])$/).optional(),
|
|
});
|
|
|
|
const eventIdSchema = z.object({
|
|
eventId: z.string().uuid(),
|
|
});
|
|
|
|
// Všetky routes vyžadujú autentifikáciu
|
|
router.use(authenticate);
|
|
|
|
/**
|
|
* GET /api/events/today-count - Získať počet eventov a todos pre dnešok (pre badge v sidebar)
|
|
*/
|
|
router.get('/today-count', eventController.getTodayCount);
|
|
|
|
/**
|
|
* GET /api/events - Získať eventy a todos podľa mesiaca (filtrované podľa assigned users)
|
|
*/
|
|
router.get(
|
|
'/',
|
|
validateQuery(monthQuerySchema),
|
|
eventController.getCalendarData
|
|
);
|
|
|
|
/**
|
|
* GET /api/events/:eventId - Získať konkrétny event
|
|
*/
|
|
router.get(
|
|
'/:eventId',
|
|
validateParams(eventIdSchema),
|
|
eventController.getEventById
|
|
);
|
|
|
|
/**
|
|
* POST /api/events - Vytvoriť event (všetci autentifikovaní používatelia)
|
|
*/
|
|
router.post(
|
|
'/',
|
|
validateBody(createEventSchema),
|
|
eventController.createEvent
|
|
);
|
|
|
|
/**
|
|
* PUT /api/events/:eventId - Upraviť event (všetci autentifikovaní používatelia)
|
|
*/
|
|
router.put(
|
|
'/:eventId',
|
|
validateParams(eventIdSchema),
|
|
validateBody(updateEventSchema),
|
|
eventController.updateEvent
|
|
);
|
|
|
|
/**
|
|
* DELETE /api/events/:eventId - Zmazať event (všetci autentifikovaní používatelia)
|
|
*/
|
|
router.delete(
|
|
'/:eventId',
|
|
validateParams(eventIdSchema),
|
|
eventController.deleteEvent
|
|
);
|
|
|
|
/**
|
|
* POST /api/events/:eventId/notify - Odoslať notifikácie priradeným používateľom (všetci autentifikovaní používatelia)
|
|
*/
|
|
router.post(
|
|
'/:eventId/notify',
|
|
validateParams(eventIdSchema),
|
|
eventController.sendEventNotification
|
|
);
|
|
|
|
export default router;
|