# CHANGELOG - Versión 1.5.1 (Parche - Fix URL doble barra)

## 📅 Fecha: 24 de enero 2026

## 🐛 Problema Identificado
Las URLs generadas contenían doble barra (`//`) al concatenar la URL base con los endpoints, causando errores 404:
```
❌ http://192.168.100.137:8081/simafir_api/ws/public/v1/criterios//IPC
✅ http://192.168.100.137:8081/simafir_api/ws/public/v1/criterios/IPC
```

## 🔧 Corrección Aplicada

### Archivos Modificados:
**`inc/api.php`** - Funciones corregidas:

1. **`get_report_variables($data)`** - Línea ~112
   ```php
   // Limpiar barras iniciales del parámetro
   $data = ltrim($data, '/');
   $IPCURL = $this->url_base . 'public/v1/criterios/' . $data;
   ```

2. **`get_all_data($data)`** - Línea ~217
   ```php
   // Limpiar barras iniciales del parámetro
   $data = ltrim($data, '/');
   $IPCURL = $this->url_base . 'public/v1/obtenerDatos/porCriterio/' . $data;
   ```

3. **`get_all_data1($data, $client)`** - Línea ~257
   ```php
   // Limpiar barras iniciales del parámetro
   $data = ltrim($data, '/');
   $fullUrl = $this->url_base . 'public/v1/obtenerDatos/porCriterio/' . $data;
   ```

### Solución Técnica:
- Se agregó `ltrim($data, '/')` antes de concatenar el parámetro `$data` con la URL base
- Esto elimina cualquier barra inicial (`/`) del parámetro, previniendo URLs con `//`
- La URL base ya termina en `/`, por lo que concatenar directamente causaba el problema

## 📋 Afectación

### ✅ Funciones Corregidas:
- `get_report_variables()` - Obtención de criterios por tema
- `get_all_data()` - Obtención de datos vía cURL
- `get_all_data1()` - Obtención de datos vía Guzzle

### ✅ Endpoints Corregidos:
- `/public/v1/criterios/{TEMA}` 
- `/public/v1/obtenerDatos/porCriterio/...`
- `/public/v1/tipoCambioExterno/obtenerDatos/...` (indirectamente)

## 🧪 Validación

### Test Manual:
```bash
# Verificar que las URLs no contengan //
grep -n "ltrim.*'/)'" inc/api.php

# Resultado esperado (3 líneas):
# 112:      $data = ltrim($data, '/');
# 220:      $data = ltrim($data, '/');
# 260:      $data = ltrim($data, '/');
```

### Test en Navegador:
1. Ir a página de parámetros SIMAFIR
2. Seleccionar un tema (ej: IPC, INFLACION)
3. Verificar que se carguen los criterios correctamente
4. Inspeccionar Network tab: URLs deben tener estructura correcta sin `//`

## 📦 Instalación del Parche

```bash
# En servidor WordPress
cd /ruta/a/wordpress/wp-content/plugins/

# Backup del plugin actual
cp -r secmca-api secmca-api-backup-$(date +%Y%m%d)

# Reemplazar archivo api.php
# Subir nuevo inc/api.php vía FTP/SFTP

# O instalar ZIP completo v1.5.1
wp plugin deactivate secmca-api
# Subir secmca-api-v1.5.1.zip
wp plugin activate secmca-api
```

## ⚠️ Notas Importantes

1. **No afecta datos existentes**: Solo corrige la generación de URLs
2. **Compatible con v1.5.0**: Puede aplicarse como parche sobre v1.5.0
3. **Sin cambios en base de datos**: No requiere actualizar opciones
4. **Retrocompatible**: Funciona con llamadas que pasen parámetros con o sin `/` inicial

## 🔄 Cambios de Versión

- **Version:** 1.5.0 → **1.5.1**
- **SECMCA_VER:** `2026-01-etapa4-secmca` → `2026-01-etapa4-secmca-fix`

---

**Tipo:** Hotfix  
**Prioridad:** Alta  
**Severidad:** Bug crítico (404 errors en endpoints)  
**Tiempo estimado de aplicación:** 2-5 minutos
