Files
bot_palmas/scripts/strip-base-url.php
T
Lizandro GuarnizoandClaude Sonnet 4.6 b349230362 chore: script de migración para quitar base URL de endpoints
Recorre company_endpoints y elimina el prefijo api_base_url de
las URLs absolutas, dejando solo la ruta relativa.
Dry-run por defecto (?run=1 para ejecutar).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-04 15:35:58 -05:00

60 lines
2.0 KiB
PHP

<?php
declare(strict_types=1);
require_once __DIR__ . '/../config/env.php';
require_once __DIR__ . '/../config/db.php';
$isDry = ($_GET['run'] ?? '') !== '1';
header('Content-Type: text/html; charset=utf-8');
echo '<pre style="font-family:monospace;font-size:13px;padding:20px">';
echo ($isDry ? "🔍 DRY RUN — ningún cambio se aplicará\n" : "🚀 EJECUTANDO — actualizando la DB\n");
echo str_repeat('─', 60) . "\n\n";
$companies = db()->query("SELECT id, name, api_base_url FROM companies WHERE api_base_url IS NOT NULL AND api_base_url != ''")->fetchAll(PDO::FETCH_ASSOC);
$totalUpdated = 0;
foreach ($companies as $co) {
$base = rtrim($co['api_base_url'], '/');
$eps = db()->prepare("SELECT id, endpoint_key, url FROM company_endpoints WHERE company_id = ? AND url IS NOT NULL AND url != ''");
$eps->execute([$co['id']]);
$rows = $eps->fetchAll(PDO::FETCH_ASSOC);
$hits = [];
foreach ($rows as $ep) {
$url = $ep['url'];
if (!str_starts_with($url, $base)) continue;
$suffix = substr($url, strlen($base));
if ($suffix === '') $suffix = '/';
$hits[] = ['id' => $ep['id'], 'key' => $ep['endpoint_key'], 'before' => $url, 'after' => $suffix];
}
if (empty($hits)) continue;
echo "🏢 {$co['name']} (id={$co['id']})\n";
echo " Base: {$base}\n";
foreach ($hits as $h) {
echo " [{$h['key']}]\n";
echo " antes: {$h['before']}\n";
echo " después: {$h['after']}\n";
if (!$isDry) {
db()->prepare("UPDATE company_endpoints SET url = ? WHERE id = ?")->execute([$h['after'], $h['id']]);
}
$totalUpdated++;
}
echo "\n";
}
echo str_repeat('─', 60) . "\n";
if ($totalUpdated === 0) {
echo "✅ Ningún endpoint tiene la base URL como prefijo. Nada que cambiar.\n";
} elseif ($isDry) {
echo "📋 {$totalUpdated} endpoint(s) serían modificados.\n";
echo " → Para aplicar: abre este script con ?run=1\n";
} else {
echo "✅ {$totalUpdated} endpoint(s) actualizados.\n";
}
echo '</pre>';