update documentacion código interno
|
After Width: | Height: | Size: 261 KiB |
|
After Width: | Height: | Size: 293 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
After Width: | Height: | Size: 316 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 212 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
|
@ -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**
|
||||||
|

|
||||||
|
|
||||||
**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...)**
|
||||||

|

|
||||||
|
|
||||||
**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:**
|
||||||

|

|
||||||
|
***
|
||||||
|
**Ejemplo llamada:**
|
||||||
|

|
||||||
|
|
||||||
**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:**
|
||||||

|

|
||||||
|
***
|
||||||
|
**Proxy Fetch:**
|
||||||
|

|
||||||
|
***
|
||||||
|
**Decisión segun entorno**
|
||||||
|

|
||||||
|
|
||||||
**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`).
|
||||||
|
|
|
||||||