ValwispDocs
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.ts

Antes 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 un tenantId que venga del body/query del cliente.
  • El service recibe tenantId como 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

  1. Regístralo en src/app.module.ts.
  2. Agrega los endpoints tipados en apps/valwisp-dashboard/src/api/valwisp/endpoints.ts.
  3. Agrega los tipos necesarios en apps/valwisp-dashboard/src/api/valwisp/types.ts.
  4. 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.

On this page