34 lines
1.7 KiB
JavaScript
34 lines
1.7 KiB
JavaScript
const express = require('express');
|
|
const router = express.Router();
|
|
const usersController = require('../controllers/usersController');
|
|
const { verifyToken, verifyUserToken, verifyPortalKey } = require('../middleware/auth');
|
|
|
|
// Captive portal — requer X-Portal-Key
|
|
router.post('/lead', verifyPortalKey, usersController.receiveLead);
|
|
router.post('/portal/check', verifyPortalKey, usersController.checkPortalUser);
|
|
router.post('/login', usersController.loginUser);
|
|
router.post('/register', usersController.registerUser);
|
|
router.post('/activate', usersController.activateUser);
|
|
router.post('/auth/forgot-password', usersController.forgotPassword);
|
|
router.post('/auth/reset-password', usersController.resetPassword);
|
|
router.post('/auth/migrate', usersController.migrateAccount);
|
|
|
|
// User — autenticado
|
|
router.get('/me', verifyUserToken, usersController.getMe);
|
|
router.patch('/me', verifyUserToken, usersController.updateMe);
|
|
router.patch('/me/optin', verifyUserToken, usersController.updateOptin);
|
|
|
|
// --- Phase 5: Ganhadores ---
|
|
router.get('/my-notifications', verifyUserToken, usersController.getMyNotifications);
|
|
router.put('/my-notifications/:id/read', verifyUserToken, usersController.markNotificationRead);
|
|
router.get('/my-claims', verifyUserToken, usersController.getMyClaims);
|
|
router.post('/my-claims', verifyUserToken, usersController.createClaim);
|
|
|
|
// Admin routes
|
|
router.get('/users', verifyToken, usersController.getAll);
|
|
router.get('/users/stats', verifyToken, usersController.getStats);
|
|
router.put('/users/:id', verifyToken, usersController.updateUser);
|
|
router.delete('/users/:id', verifyToken, usersController.deleteUser);
|
|
|
|
module.exports = router;
|