DesarrolladoresGuías
Añadir un módulo a la API
Estructura y reglas obligatorias para crear un módulo NestJS nuevo en valwisp-api.
Estructura
src/modules/[nombre]/
[nombre].module.ts
[nombre].controller.ts
[nombre].service.ts
dto/
create-[nombre].dto.ts
update-[nombre].dto.tsAntes de escribir código nuevo, lee un módulo existente similar como referencia de
patrones — src/modules/clients/ o src/modules/tickets/ son buenos puntos de partida.
Reglas obligatorias
- Todas las queries de Prisma deben filtrar por
tenantId— ver Multi-tenancy. @UseGuards(JwtAuthGuard, RolesGuard)en el controller.@CurrentUser()y@TenantId()para extraer datos del JWT — nunca confíes en untenantIdque venga del body/query del cliente.- El service recibe
tenantIdcomo primer parámetro en cada método. - Paginación estándar:
{ data, total, page, limit, pages }. - Valida los DTOs con
class-validator. - Nunca expongas campos sensibles (contraseñas cifradas, tokens) en la respuesta.
Después de crear el módulo
- Regístralo en
src/app.module.ts. - Agrega los endpoints tipados en
apps/valwisp-dashboard/src/api/valwisp/endpoints.ts. - Agrega los tipos necesarios en
apps/valwisp-dashboard/src/api/valwisp/types.ts. - Si el módulo introduce acciones nuevas que deban controlarse por permiso, ver Agregar un permiso al catálogo — no basta con agregar el código.
El formato de respuesta ({ success, data, timestamp }) y el manejo de errores los
maneja la infraestructura global — no hay que envolver nada a mano, ver
Convenciones.