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 '';