From b3492303622713a7e2794ea5ecc47d7b98ea0a25 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Sat, 4 Jul 2026 15:35:58 -0500 Subject: [PATCH] =?UTF-8?q?chore:=20script=20de=20migraci=C3=B3n=20para=20?= =?UTF-8?q?quitar=20base=20URL=20de=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- scripts/strip-base-url.php | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 scripts/strip-base-url.php diff --git a/scripts/strip-base-url.php b/scripts/strip-base-url.php new file mode 100644 index 0000000..357e1b9 --- /dev/null +++ b/scripts/strip-base-url.php @@ -0,0 +1,59 @@ +'; +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 '';