Files
Tasks/backend/routes/category.routes.js
2025-11-11 00:25:50 +02:00

42 lines
1.3 KiB
JavaScript

const express = require('express');
const router = express.Router();
const categoryController = require('../controllers/category.controller');
const authMiddleware = require('../middleware/auth.middleware');
/**
* @route GET /api/categories
* @desc Get all active categories (guest sees only guest-accessible, auth sees all)
* @access Public (optional auth)
*/
router.get('/', authMiddleware.optionalAuth, categoryController.getAllCategories);
/**
* @route GET /api/categories/:id
* @desc Get category details with question preview and stats
* @access Public (optional auth, some categories require auth)
*/
router.get('/:id', authMiddleware.optionalAuth, categoryController.getCategoryById);
/**
* @route POST /api/categories
* @desc Create new category
* @access Private/Admin
*/
router.post('/', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.createCategory);
/**
* @route PUT /api/categories/:id
* @desc Update category
* @access Private/Admin
*/
router.put('/:id', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.updateCategory);
/**
* @route DELETE /api/categories/:id
* @desc Delete category (soft delete)
* @access Private/Admin
*/
router.delete('/:id', authMiddleware.verifyToken, authMiddleware.isAdmin, categoryController.deleteCategory);
module.exports = router;