Upload source code
This commit is contained in:
23
src/server/routes/userRoutes.ts
Normal file
23
src/server/routes/userRoutes.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import express from 'express';
|
||||
import { syncUser, getCurrentUser, getAllUsers, updateUserRole, toggleBanUser, heartbeat, getActiveUsers, deleteUser } from '../controllers/userController.js';
|
||||
import { extractUser, requireAdmin } from '../middleware/roleMiddleware.js';
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
// Sync user from Clerk (public - called on login)
|
||||
router.post('/sync', syncUser);
|
||||
|
||||
// Get current user (requires extractUser middleware)
|
||||
router.get('/me', extractUser, getCurrentUser);
|
||||
|
||||
// Heartbeat & Presence
|
||||
router.post('/heartbeat', extractUser, heartbeat);
|
||||
router.get('/active', extractUser, getActiveUsers);
|
||||
|
||||
// Admin-only routes
|
||||
router.get('/', extractUser, requireAdmin, getAllUsers);
|
||||
router.patch('/:id/role', extractUser, requireAdmin, updateUserRole);
|
||||
router.patch('/:id/ban', extractUser, requireAdmin, toggleBanUser);
|
||||
router.delete('/:id', extractUser, requireAdmin, deleteUser);
|
||||
|
||||
export default router;
|
||||
Reference in New Issue
Block a user