Commit Graph

49 Commits

Author SHA1 Message Date
JM 98312846fa Modifico el endpoint de descargas de pdf , convirtiendo el base64 a binario 2026-04-16 09:41:46 +02:00
JM 6bac2c63fb añado el Controller y metodo para comprobar desde el servicio si existe x documento 2026-04-15 16:49:41 +02:00
JM 0e7bee7e43 empiezo el servicio para descarga de pdfs 2026-04-15 16:29:05 +02:00
javiermengual b7adb8e9cc fix: arreglado error de editar facturas 2026-02-10 12:39:04 +01:00
javiermengual 305a69667d bug: arreglado de perdida de precision en amount , y ajuste de la fecha devuelta de pagos. 2026-02-06 18:47:39 +01:00
javiermengual 0b098376c5 feat : Agrego endpoint Post para Payments 2026-02-06 15:24:47 +01:00
javiermengual 26ad842256 feat : Endpoint Get para los pagos de factura 2026-02-06 13:01:20 +01:00
javiermengual eef2c9954c quito anotaciones de los Controllers para mayor legibilidad. 2026-02-05 14:38:47 +01:00
javiermengual 45913112be feat: Añadido endpoints para Delete Invoice y sus Lines , tambien corregido orden de Dto de GetById 2026-02-05 14:33:03 +01:00
javiermengual 45e4af5b39 feat: Añado mas campos utiles para los terceros 2026-02-05 14:25:13 +01:00
javiermengual 9e888ee985 fix: formateo y eliminar estado invalido cancelled 2026-02-03 17:19:53 +01:00
javiermengual c1c7d4bb37 añado endpoint para validar factura y campo de notas publicas y privadas en los Dtos 2026-02-03 16:50:44 +01:00
javiermengual 7e7a4f48fa fix: Dejo el Like completo porque dolibar lo hace asi internamente. 2026-02-02 11:24:20 +01:00
javiermengual 60a9a7f7db feat: Patch para el status que no dejaba por Update 2026-02-02 11:01:40 +01:00
javiermengual c674ac66d9 fix: las facturas ahora devuelven tmb el nombre del cliente. 2026-01-30 16:52:28 +01:00
javiermengual e729388981 feat : Añado endpoint Get para Clients de dolibar. 2026-01-30 16:34:23 +01:00
javiermengual 161696269d fix: add optional search parameter to GET invoices 2026-01-29 13:26:54 +01:00
javiermengual 8c781308e7 fix: update CORS configuration to include additional origin 2026-01-16 19:07:40 +01:00
javiermengual 72b15eeff6 feat: add CORS configuration and implement unit tests for InvoiceMapper and InvoiceService 2026-01-16 15:43:28 +01:00
javiermengual a1fd7c6418 Arreglar bug de validación de estado y limpiar código de cache
- Añadir método ConvertStatusToDolibarr en InvoiceMapper para mapear todos los estados correctamente (draft, unpaid, paid, cancelled)
- Mover lógica de mapeo de estado desde InvoiceService a InvoiceMapper para seguir principios de SRP
- Arreglar bug donde el estado 'paid' y 'cancelled' se mapeaban incorrectamente a '0' (draft)
- Añadir validación de estado con mensaje de error claro para valores inválidos
- Limpiar código de DolibarrTokenCacheService eliminando bloque anidado innecesario
2026-01-03 20:46:13 +01:00
javiermengual 9a06cc945e fix: arreglo bug porque dolibar devuelve un objeto anidado 2026-01-03 20:31:53 +01:00
javiermengual 283a9e7f5f Implementar autenticación JWT con caché de tokens de Dolibarr por sesión
- Añadir autenticación estándar JWT Bearer con ASP.NET Core
- Crear DolibarrTokenCacheService para la lógica de caché de tokens
- Refactorizar DolibarrApiClient para usar TokenCacheService con SRP limpio
- Actualizar Program.cs con registros de servicios y comentarios apropiados
- Añadir AuthController para el endpoint de login
- Actualizar InvoiceService para usar DolibarrApiClient
2026-01-03 19:55:04 +01:00
javiermengual a80d41feab feat: Primera parte de la implementacion de autentificacion, para obtener la DOLIAPIKEY del cliente la cual cachearemos asociada a un Id que devolveremos en el JWT de nuestro servidor. 2026-01-03 18:12:40 +01:00
javiermengual f28461ae0c refactor: extraer interfaz IDolibarrApiClient para facilitar testing
- Crear IDolibarrApiClient con métodos de la API de Dolibarr
- Implementar interfaz en DolibarrApiClient
- Modificar InvoiceService para depender de IDolibarrApiClient en lugar de la clase concreta
- Actualizar Program.cs para registrar IDolibarrApiClient en el contenedor DI

Esto sigue el Principio de Inversión de Dependencias (DIP) de SOLID,
permitiendo mockear el cliente API en tests unitarios sin conectividad externa.
2026-01-03 14:57:23 +01:00
javiermengual 2e1062cc71 feat: Implemento el subendpoint de POST para las lineas de facturas. 2026-01-02 21:05:46 +01:00
javiermengual a06ac2bdd9 feat: Implementar endpoint PUT para actualizar facturas draft, limitado a campos permitidos por Dolibarr (ref, notas, estado, fecha expiración) y unificar campo 'number' para consistencia 2026-01-02 20:20:58 +01:00
javiermengual 1fd331ac17 feat: Implemento completamente el POST de facturas , usando un objeto anonimo para la request, y devuelvo el id creado. 2026-01-02 19:01:04 +01:00
javiermengual daded56582 feat: Creo los DTOS para el POST de facturas , tambien organizo un poco en command y query los DTOS 2026-01-02 18:15:41 +01:00
javiermengual ab80901280 refactor: sacar los metodos de cada DTO a su propio servicio porque si no se me hara un god object , y lo mantendre simple sin mucha abstraccion. 2025-12-31 15:15:00 +01:00
javiermengual 1a752c007f enchance: cambio nombres de variables para ser mas descriptivos 2025-12-30 19:14:59 +01:00
javiermengual 198fccd5bc refactor: cambio las respuestas de error para no culpar al usuario al fallar la deserializacion sino como una ApiException 2025-12-30 19:13:26 +01:00
javiermengual 572547b356 build : cambio de OpenApi nativo a Swashbuckle para tener un mejor schema openapi. 2025-12-30 13:45:58 +01:00
javiermengual 3591ba2015 fix: aunque la key es local , la saco a dotnet user-secrets para acostumbrarme en desarollo. 2025-12-30 13:31:51 +01:00
javiermengual 3f3fd25a02 enchanche: ajusto para que no me salgan en desarollo los logs duplicados del ExceptionHandler 2025-12-30 13:28:13 +01:00
javiermengual 17ebf5c2fe feat: con ayuda de ia , me enseña sobre como manejar errores y me ayuda con una implementacion detallada siguiendo el estandar RFC 7807 2025-12-30 13:20:08 +01:00
javiermengual 220d02819c enchance: mejoro los types de openapi para el frontend 2025-12-30 13:19:02 +01:00
javiermengual accb4d3c4a fix: arreglo bug de inconsistencia en la paginacion , poniendolo como 1 based y con validacion. 2025-12-30 12:20:54 +01:00
javiermengual 7018efe279 refactor: Saco los mappers a una clase estatica, si el projecto creciera mucho podriamos usar AutoMapper 2025-12-29 19:32:38 +01:00
javiermengual 1d7182145e feat: Nuevos mappers para transformar en
InvoiceDetailDto y cada una se sus InvoiceLinesDto
2025-12-29 19:20:34 +01:00
javiermengual b2427a3276 feat: añado Dtos para el invoices{id}
para que pueda devolver todas sus lineas de factura.

Tambien las respectivas Respuestas de Dolibarr que hay que sanear.
2025-12-29 19:18:04 +01:00
javiermengual 5081d71f69 fix: arreglo bug porque dolibarr devuelve el status en numero y lo pide como parametro como palabra. 2025-12-29 18:30:23 +01:00
javiermengual b937c64e39 refactor: usar strings para status de facturas en lugar de enum
- Cambiar InvoiceDto.Status de enum a string
- Eliminar InvoiceStatus enum y mapper
- Usar directamente los status de Dolibarr (draft, unpaid, paid, cancelled)
2025-12-29 16:58:53 +01:00
javiermengual 9d871dccf9 feat: añadir controlador de facturas 2025-12-29 16:37:46 +01:00
javiermengual 7428eb3f8d feat: implementar cliente API de Dolibarr 2025-12-29 16:37:46 +01:00
javiermengual 6861d3c948 feat: añadir DTOs de facturas 2025-12-29 16:37:46 +01:00
javiermengual 4cb4653e3b feat: añadir excepciones personalizadas para la API 2025-12-29 16:37:46 +01:00
javiermengual 05a964bbaa feat: configurar API base con Program.cs y settings 2025-12-29 16:37:45 +01:00
javiermengual f74aaac664 chore: añadir configuración de Docker 2025-12-29 16:37:45 +01:00
javiermengual f98870bbe6 chore: configuración inicial del proyecto .NET 2025-12-29 16:37:45 +01:00