feat: API Gateway (Express 5 + Prisma + Monday) y conexion de apps al API
- api-gateway: servicio Monday (retry 429/complejidad, paginacion cursor, column IDs por titulo), endpoints unidades/cotizaciones/clientes/planes, webhook con handshake challenge, Prisma SQLite dev, 55 tests - cotizador: inventario desde /api/unidades con fallback a seed - alta-clientes: POST /api/clientes + upload multipart de documentos - cobranza: persistencia via API con respaldo offline en localStorage - .env.example con board IDs del workspace Frasa-CAS
This commit is contained in:
51
api-gateway/src/routes/index.ts
Normal file
51
api-gateway/src/routes/index.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { Router } from 'express'
|
||||
import { health } from '../controllers/health.controller.js'
|
||||
import { listarUnidades, obtenerUnidad } from '../controllers/unidades.controller.js'
|
||||
import {
|
||||
crearCotizacion,
|
||||
listarCotizaciones,
|
||||
obtenerCotizacion,
|
||||
} from '../controllers/cotizaciones.controller.js'
|
||||
import {
|
||||
crearCliente,
|
||||
listarDocumentos,
|
||||
obtenerCliente,
|
||||
subirDocumentos,
|
||||
uploadDocumentos,
|
||||
} from '../controllers/clientes.controller.js'
|
||||
import {
|
||||
agregarNota,
|
||||
cancelarPlan,
|
||||
cobranzaHoy,
|
||||
crearPlan,
|
||||
listarPlanes,
|
||||
obtenerPlan,
|
||||
registrarAbonoEndpoint,
|
||||
} from '../controllers/planes.controller.js'
|
||||
import { webhookMonday } from '../controllers/webhooks.controller.js'
|
||||
|
||||
export const apiRouter = Router()
|
||||
|
||||
apiRouter.get('/health', health)
|
||||
|
||||
apiRouter.get('/unidades', listarUnidades)
|
||||
apiRouter.get('/unidades/:codigo', obtenerUnidad)
|
||||
|
||||
apiRouter.post('/cotizaciones', crearCotizacion)
|
||||
apiRouter.get('/cotizaciones', listarCotizaciones)
|
||||
apiRouter.get('/cotizaciones/:id', obtenerCotizacion)
|
||||
|
||||
apiRouter.post('/clientes', crearCliente)
|
||||
apiRouter.get('/clientes/:id', obtenerCliente)
|
||||
apiRouter.post('/clientes/:id/documentos', uploadDocumentos.array('archivos', 10), subirDocumentos)
|
||||
apiRouter.get('/clientes/:id/documentos', listarDocumentos)
|
||||
|
||||
apiRouter.post('/planes', crearPlan)
|
||||
apiRouter.get('/planes', listarPlanes)
|
||||
apiRouter.get('/planes/cobranza-del-dia', cobranzaHoy)
|
||||
apiRouter.get('/planes/:id', obtenerPlan)
|
||||
apiRouter.post('/planes/:id/abonos', registrarAbonoEndpoint)
|
||||
apiRouter.post('/planes/:id/notas', agregarNota)
|
||||
apiRouter.post('/planes/:id/cancelar', cancelarPlan)
|
||||
|
||||
apiRouter.post('/webhooks/monday', webhookMonday)
|
||||
Reference in New Issue
Block a user