diff --git a/presentaciones/levi/capturas/decision.png b/presentaciones/levi/capturas/decision.png new file mode 100644 index 0000000..6c47b9b Binary files /dev/null and b/presentaciones/levi/capturas/decision.png differ diff --git a/presentaciones/levi/capturas/direct-fetch.png b/presentaciones/levi/capturas/direct-fetch.png new file mode 100644 index 0000000..fd52bf3 Binary files /dev/null and b/presentaciones/levi/capturas/direct-fetch.png differ diff --git a/presentaciones/levi/capturas/docker-compose.png b/presentaciones/levi/capturas/docker-compose.png new file mode 100644 index 0000000..8755e12 Binary files /dev/null and b/presentaciones/levi/capturas/docker-compose.png differ diff --git a/presentaciones/levi/capturas/ejemplo-llamada.png b/presentaciones/levi/capturas/ejemplo-llamada.png new file mode 100644 index 0000000..3ce5a9f Binary files /dev/null and b/presentaciones/levi/capturas/ejemplo-llamada.png differ diff --git a/presentaciones/levi/capturas/env-local.png b/presentaciones/levi/capturas/env-local.png new file mode 100644 index 0000000..977ba57 Binary files /dev/null and b/presentaciones/levi/capturas/env-local.png differ diff --git a/presentaciones/levi/capturas/proxy-fetch.png b/presentaciones/levi/capturas/proxy-fetch.png new file mode 100644 index 0000000..e5da6a1 Binary files /dev/null and b/presentaciones/levi/capturas/proxy-fetch.png differ diff --git a/presentaciones/levi/capturas/route.png b/presentaciones/levi/capturas/route.png new file mode 100644 index 0000000..fd9ab73 Binary files /dev/null and b/presentaciones/levi/capturas/route.png differ diff --git a/presentaciones/levi/capturas/servicios-levantados.png b/presentaciones/levi/capturas/servicios-levantados.png new file mode 100644 index 0000000..31af9da Binary files /dev/null and b/presentaciones/levi/capturas/servicios-levantados.png differ diff --git a/presentaciones/levi/codigo_interno.md b/presentaciones/levi/codigo_interno.md index 1f2d2f5..5094cdb 100644 --- a/presentaciones/levi/codigo_interno.md +++ b/presentaciones/levi/codigo_interno.md @@ -1,23 +1,19 @@ -# Apuntes de codigo - ---- ## 1) Infraestructura (Docker) -**Que capturar:** -- Archivo `docker-compose.yml` -- Bloques `mariadb` y `dolibarr` -- Puertos, variables y volumenes **Por que es importante:** - El proyecto depende de Dolibarr y una base de datos real. - Docker permite reproducir el entorno en cualquier maquina. - Sin Dolibarr activo, la API devuelve errores de conexion. -**Captura sugerida:** -![Docker Compose](capturas/01-docker-compose.png) +**Docker Desktop** +![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. - Dolibarr expone el puerto `8200` para acceder al ERP. - Las credenciales y modulos se configuran por variables de entorno. @@ -27,18 +23,14 @@ ## 2) Variables de entorno (configuracion) -**Que capturar:** -- Archivo `.env.local` -- Variables `DOLIBARR_API_URL` y `DOLIBARR_API_KEY` - **Por que es importante:** - La app no funciona sin apuntar a la API de Dolibarr. - La API key se mantiene en servidor y no se expone al cliente. -**Captura sugerida (oculta la key real):** -![Env Local](capturas/02-env-local.png) +**Env local(api borrada por temas de segurdad...)** +![Env Local](capturas/env-local.png) -**Guion corto:** +**Explicación:** - La URL y la API key son el puente con Dolibarr. - Existen variables legacy `NEXT_PUBLIC_*` por compatibilidad. @@ -46,19 +38,18 @@ ## 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:** - El frontend nunca habla directamente con Dolibarr. - El proxy agrega la key en servidor y protege credenciales. -**Captura sugerida:** -![Proxy API](capturas/03-proxy-api.png) +**Metodos GET/POST/PUT/DELETE:** +![Route.ts](capturas/route.png) +*** +**Ejemplo llamada:** +![Ejemplo llamada](capturas/ejemplo-llamada.png) -**Guion corto:** + +**Explicación:** - Todas las llamadas pasan por `/api/dolibarr/...`. - Se construye la URL real con `DOLIBARR_API_URL`. - Se reenvian los metodos HTTP y se manejan errores. @@ -67,19 +58,21 @@ ## 4) Cliente central de Dolibarr -**Que capturar:** -- Archivo `lib/dolibarrClient.ts` -- `dolibarrDirectFetch` y `dolibarrProxyFetch` -- `dolibarrFetch` que decide segun entorno - **Por que es importante:** - 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:** -![Dolibarr Client](capturas/04-dolibarr-client.png) +**Direct Fetch:** +![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 cliente usa el proxy interno. - Se aplica cache corta (`revalidate: 60`).