page(); if ($page->id !== StatusPage::defaultId()) { $name = 'page.'.$name; $parameters = ['slug' => $page->slug] + $parameters; } $relative = URL::signedRoute($name, $parameters, $expiration, absolute: false); return rtrim(config('app.url'), '/').$relative; } public static function api(string $path = ''): string { $page = app(PageContext::class)->page(); $prefix = $page->id === StatusPage::default()->id ? '/api/v1' : '/api/v1/pages/'.rawurlencode($page->slug); return rtrim(config('app.url'), '/').$prefix.($path !== '' ? '/'.ltrim($path, '/') : ''); } public static function landing(User $user): string { if ($user->canAccessPage(StatusPage::default()->id)) { return route('admin.overview'); } $page = $user->statusPages()->whereNull('archived_at')->first(); return $page ? route('page.admin.overview', ['statusPage' => $page->id]) : route('admin.no-pages'); } private static function resolve(string $name, mixed $parameters): array { if (! Route::has('page.'.$name)) { return [$name, $parameters, null]; } $page = app(PageContext::class)->page(); $isPublic = ! str_starts_with($name, 'admin.'); if ($isPublic && $page->domain) { return [$name, $parameters, $page->domain]; } $explicit = request()->attributes->get('explicit_status_page', false); if ($page->id === StatusPage::default()->id && ! $explicit) { return [$name, $parameters, null]; } $parameters = is_array($parameters) ? $parameters : [$parameters]; $key = $isPublic ? 'slug' : 'statusPage'; $value = $isPublic ? $page->slug : $page->id; return ['page.'.$name, [$key => $value] + $parameters, null]; } }