initialize git, basic setup for crm

This commit is contained in:
richardtekula
2025-11-18 13:53:28 +01:00
commit da01d586fc
47 changed files with 12776 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
import express from 'express';
import * as adminController from '../controllers/admin.controller.js';
import { authenticate } from '../middlewares/auth/authMiddleware.js';
import { requireAdmin } from '../middlewares/auth/roleMiddleware.js';
import { validateBody, validateParams } from '../middlewares/security/validateInput.js';
import { createUserSchema, changeRoleSchema } from '../validators/auth.validators.js';
import { z } from 'zod';
const router = express.Router();
/**
* Všetky admin routes vyžadujú autentifikáciu a admin rolu
*/
router.use(authenticate);
router.use(requireAdmin);
/**
* User management
*/
// Vytvorenie nového usera
router.post('/users', validateBody(createUserSchema), adminController.createUser);
// Zoznam všetkých userov
router.get('/users', adminController.getAllUsers);
// Získanie konkrétneho usera
router.get(
'/users/:userId',
validateParams(z.object({ userId: z.string().uuid() })),
adminController.getUserById
);
// Zmena role usera
router.patch(
'/users/:userId/role',
validateParams(z.object({ userId: z.string().uuid() })),
validateBody(z.object({ role: z.enum(['admin', 'member']) })),
adminController.changeUserRole
);
// Zmazanie usera
router.delete(
'/users/:userId',
validateParams(z.object({ userId: z.string().uuid() })),
adminController.deleteUser
);
export default router;