Files
ladill-servers/app/Services/Domains/LadillDomainsClient.php
T
isaaccladandCursor 2115747588
Deploy Ladill Servers / deploy (push) Successful in 28s
Merge platform registry into owned-domain picker lookups.
Fetch owned domains from both domains.ladill.com and the platform registry so legacy customer domains populate the Ladill picker.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 18:17:03 +00:00

83 lines
2.3 KiB
PHP

<?php
namespace App\Services\Domains;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Log;
/** Read-only client for domains purchased on Ladill (storefront + platform registry). */
class LadillDomainsClient
{
/** @return list<string> Active domain names owned by the account (lowercase). */
public function ownedForUser(string $publicId): array
{
return collect()
->merge($this->fetchFromStorefront($publicId))
->merge($this->fetchFromPlatform($publicId))
->map(fn ($d) => strtolower(trim((string) $d)))
->filter()
->unique()
->sort()
->values()
->all();
}
/** @return list<string> */
private function fetchFromStorefront(string $publicId): array
{
$key = (string) (config('domains.api_key') ?? '');
if ($key === '') {
return [];
}
try {
$res = Http::withToken($key)
->acceptJson()
->timeout(10)
->get(rtrim((string) config('domains.api_url'), '/').'/owned-domains', [
'user' => $publicId,
]);
$res->throw();
return (array) $res->json('data', []);
} catch (\Throwable $e) {
Log::warning('LadillDomainsClient: storefront owned domains unavailable', [
'user' => $publicId,
'error' => $e->getMessage(),
]);
return [];
}
}
/** @return list<string> */
private function fetchFromPlatform(string $publicId): array
{
$key = (string) (config('domains.platform_api_key') ?? '');
if ($key === '') {
return [];
}
try {
$res = Http::withToken($key)
->acceptJson()
->timeout(10)
->get(rtrim((string) config('domains.platform_api_url'), '/').'/owned-domains', [
'user' => $publicId,
]);
$res->throw();
return (array) $res->json('data', []);
} catch (\Throwable $e) {
Log::warning('LadillDomainsClient: platform owned domains unavailable', [
'user' => $publicId,
'error' => $e->getMessage(),
]);
return [];
}
}
}