update documentacion código interno

This commit is contained in:
Levi Planelles 2026-05-14 10:36:17 +02:00
parent a8e368d19a
commit 1cd5cc6483
9 changed files with 27 additions and 34 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 316 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,23 +1,19 @@
# Apuntes de codigo
---
## 1) Infraestructura (Docker) ## 1) Infraestructura (Docker)
**Que capturar:**
- Archivo `docker-compose.yml`
- Bloques `mariadb` y `dolibarr`
- Puertos, variables y volumenes
**Por que es importante:** **Por que es importante:**
- El proyecto depende de Dolibarr y una base de datos real. - El proyecto depende de Dolibarr y una base de datos real.
- Docker permite reproducir el entorno en cualquier maquina. - Docker permite reproducir el entorno en cualquier maquina.
- Sin Dolibarr activo, la API devuelve errores de conexion. - Sin Dolibarr activo, la API devuelve errores de conexion.
**Captura sugerida:** **Docker Desktop**
![Docker Compose](capturas/01-docker-compose.png) ![Docker Desktop](capturas/servicios-levantados.png)
***
**Docker compose**
![Docker Compose](capturas/docker-compose.png)
**Guion corto:** **Explicación:**
- Se levantan 2 servicios: MariaDB y Dolibarr. - Se levantan 2 servicios: MariaDB y Dolibarr.
- Dolibarr expone el puerto `8200` para acceder al ERP. - Dolibarr expone el puerto `8200` para acceder al ERP.
- Las credenciales y modulos se configuran por variables de entorno. - Las credenciales y modulos se configuran por variables de entorno.
@ -27,18 +23,14 @@
## 2) Variables de entorno (configuracion) ## 2) Variables de entorno (configuracion)
**Que capturar:**
- Archivo `.env.local`
- Variables `DOLIBARR_API_URL` y `DOLIBARR_API_KEY`
**Por que es importante:** **Por que es importante:**
- La app no funciona sin apuntar a la API de Dolibarr. - La app no funciona sin apuntar a la API de Dolibarr.
- La API key se mantiene en servidor y no se expone al cliente. - La API key se mantiene en servidor y no se expone al cliente.
**Captura sugerida (oculta la key real):** **Env local(api borrada por temas de segurdad...)**
![Env Local](capturas/02-env-local.png) ![Env Local](capturas/env-local.png)
**Guion corto:** **Explicación:**
- La URL y la API key son el puente con Dolibarr. - La URL y la API key son el puente con Dolibarr.
- Existen variables legacy `NEXT_PUBLIC_*` por compatibilidad. - Existen variables legacy `NEXT_PUBLIC_*` por compatibilidad.
@ -46,19 +38,18 @@
## 3) Proxy API (seguridad de la API key) ## 3) Proxy API (seguridad de la API key)
**Que capturar:**
- Archivo `app/api/dolibarr/[...path]/route.ts`
- Construccion del endpoint y `DOLAPIKEY`
- Metodos GET/POST/PUT/DELETE
**Por que es importante:** **Por que es importante:**
- El frontend nunca habla directamente con Dolibarr. - El frontend nunca habla directamente con Dolibarr.
- El proxy agrega la key en servidor y protege credenciales. - El proxy agrega la key en servidor y protege credenciales.
**Captura sugerida:** **Metodos GET/POST/PUT/DELETE:**
![Proxy API](capturas/03-proxy-api.png) ![Route.ts](capturas/route.png)
***
**Ejemplo llamada:**
![Ejemplo llamada](capturas/ejemplo-llamada.png)
**Guion corto:**
**Explicación:**
- Todas las llamadas pasan por `/api/dolibarr/...`. - Todas las llamadas pasan por `/api/dolibarr/...`.
- Se construye la URL real con `DOLIBARR_API_URL`. - Se construye la URL real con `DOLIBARR_API_URL`.
- Se reenvian los metodos HTTP y se manejan errores. - Se reenvian los metodos HTTP y se manejan errores.
@ -67,19 +58,21 @@
## 4) Cliente central de Dolibarr ## 4) Cliente central de Dolibarr
**Que capturar:**
- Archivo `lib/dolibarrClient.ts`
- `dolibarrDirectFetch` y `dolibarrProxyFetch`
- `dolibarrFetch` que decide segun entorno
**Por que es importante:** **Por que es importante:**
- Centraliza todas las llamadas a la API. - Centraliza todas las llamadas a la API.
- Simplifica los servicios (proyectos, tareas, usuarios). - Simplifica los métodos de los servicios (proyectos, tareas, usuarios).
**Captura sugerida:** **Direct Fetch:**
![Dolibarr Client](capturas/04-dolibarr-client.png) ![Direct Fetch](capturas/direct-fetch.png)
***
**Proxy Fetch:**
![Proxy Fetch](capturas/proxy-fetch.png)
***
**Decisión segun entorno**
![Decisión según entorno](capturas/decision.png)
**Guion corto:**
**Explicación:**
- Si es servidor usa llamada directa. - Si es servidor usa llamada directa.
- Si es cliente usa el proxy interno. - Si es cliente usa el proxy interno.
- Se aplica cache corta (`revalidate: 60`). - Se aplica cache corta (`revalidate: 60`).