Backend: - client-invitations.service.ts: funcion resendInvitation() que genera nuevo token, actualiza expiresAt y reenvia el email. - Controller + routes: POST /invitations/client/:id/resend Frontend: - API client + hook useResendInvitation con invalidacion de cache. - Pagina /admin/invitar-cliente: boton 'Reenviar' por cada invitacion pendiente en la tabla. Refs: docs/CAMBIOS-2026-05-09.md
17 lines
725 B
TypeScript
17 lines
725 B
TypeScript
import { Router, type Request, type Response, type NextFunction } from 'express';
|
|
import * as controller from '../controllers/client-invitations.controller.js';
|
|
import { authenticate } from '../middlewares/auth.middleware.js';
|
|
|
|
const router: Router = Router();
|
|
|
|
// Público: validar token y registrarse desde invitación
|
|
router.get('/validate/:token', controller.validateToken);
|
|
router.post('/register/:token', controller.registerFromInvitation);
|
|
|
|
// Protegido: admin global crea, reenvia y lista invitaciones
|
|
router.post('/', authenticate, controller.createInvitation);
|
|
router.post('/:id/resend', authenticate, controller.resendInvitation);
|
|
router.get('/', authenticate, controller.listInvitations);
|
|
|
|
export default router;
|