🧾 Obtener Facturas del Usuario
Devuelve todas las facturas vinculadas al usuario autenticado: identificador, fecha de emisión y el PDF descargable.
GET/api/invoices/user
Auth JWT Requiere token en
header Authorization
¿Cómo funciona?
Section titled “¿Cómo funciona?”-
Autenticación — Extrae el usuario autenticado desde
ctx.state.user. Si no hay sesión, responde401. -
Búsqueda del usuario — Localiza al usuario en Strapi por su email para confirmar que existe en la base de datos.
-
Consulta de facturas — Llama a
getUserInvoices(email)que filtra la colecciónInvoicepor la relaciónuser.email. -
Respuesta — Retorna el array
invoicesconinvoiceId,datey los metadatos del PDF (name,url,ext,mime).
Request
Section titled “Request”GET /api/invoices/userAuthorization: Bearer <JWT_TOKEN>Respuestas
Section titled “Respuestas”{ "invoices": [ { "invoiceId": "ORD-2024-001", "date": "2024-03-15", "file": { "name": "factura-ORD-2024-001.pdf", "url": "/uploads/factura_ORD_2024_001_abc123.pdf", "ext": ".pdf", "mime": "application/pdf" } } ]}{ "error": { "status": 401, "message": "Unauthorized" }}{ "error": { "status": 401, "message": "User not found in Strapi" }}{ "success": false, "message": "Error fetching user invoices: ..."}Ejemplo con fetch
Section titled “Ejemplo con fetch”const response = await fetch("/api/invoices/user", { headers: { Authorization: `Bearer ${token}`, },});
const data = await response.json();
data.invoices.forEach((invoice) => { console.log(`${invoice.invoiceId} — ${invoice.date}`); console.log(`Descargar: ${invoice.file.url}`);});Archivos relacionados
Section titled “Archivos relacionados”| Archivo | Rol |
|---|---|
src/api/invoice/controllers/invoice.ts | Controlador — valida auth y llama al servicio |
src/api/invoice/services/invoice.ts | Servicio — consulta la colección Invoice |
src/api/invoice/routes/custom-invoice.ts | Definición de la ruta |
src/api/invoice/content-types/invoice/schema.json | Esquema del content type Invoice |