initialize git, basic setup for crm
This commit is contained in:
49
src/routes/admin.routes.js
Normal file
49
src/routes/admin.routes.js
Normal 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;
|
||||
Reference in New Issue
Block a user