- {{ __('Provider') }}
- {{ $syncConfig['provider'] }}
- {{ __('Timeout') }}
- {{ $syncConfig['timeout'] }}s
- {{ __('Endpoint') }}
- {{ $syncConfig['endpoint'] }}
latest('id')->first(); if ($subscription === null) { $this->dryRunMessage = 'Dry-Run: Kein Datensatz fuer Vorschau vorhanden.'; return; } $action = ($subscription->is_confirmed && $subscription->unsubscribed_at === null) ? 'subscribe' : 'unsubscribe'; $this->dryRunMessage = "Dry-Run: Es wuerde {$action} fuer Subscription #{$subscription->id} ({$subscription->email}) ausgefuehrt."; } public function triggerTestSync(): void { $subscription = NewsletterSubscription::query()->latest('id')->first(); if ($subscription === null) { $this->syncMessage = 'Kein Datensatz fuer Test-Sync vorhanden.'; return; } app(NewsletterSyncService::class)->syncSubscription($subscription); $action = ($subscription->is_confirmed && $subscription->unsubscribed_at === null) ? 'subscribe' : 'unsubscribe'; $this->syncMessage = "Test-Sync ausgefuehrt ({$action}) fuer Subscription #{$subscription->id}."; } public function with(): array { return [ 'stats' => $this->stats(), 'syncConfig' => [ 'enabled' => (bool) config('newsletter.sync.enabled'), 'provider' => (string) config('newsletter.sync.provider'), 'endpoint' => (string) (config('newsletter.sync.endpoint') ?? '-'), 'timeout' => (int) config('newsletter.sync.timeout', 10), ], ]; } /** * @return array{total: int, confirmed: int, pending: int, unsubscribed: int} */ private function stats(): array { return app(AdminPerformanceCache::class)->remember(AdminPerformanceCache::NewsletterStats, AdminPerformanceCache::StatsTtl, function (): array { $stats = NewsletterSubscription::query() ->toBase() ->selectRaw('COUNT(*) as total') ->selectRaw('SUM(CASE WHEN is_confirmed = ? THEN 1 ELSE 0 END) as confirmed', [true]) ->selectRaw('SUM(CASE WHEN is_confirmed = ? THEN 1 ELSE 0 END) as pending', [false]) ->selectRaw('SUM(CASE WHEN unsubscribed_at IS NOT NULL THEN 1 ELSE 0 END) as unsubscribed') ->first(); return [ 'total' => (int) ($stats->total ?? 0), 'confirmed' => (int) ($stats->confirmed ?? 0), 'pending' => (int) ($stats->pending ?? 0), 'unsubscribed' => (int) ($stats->unsubscribed ?? 0), ]; }); } }; ?>
{{ __('Vorbereitung fuer die kuenftige externe API-Anbindung. Aktuell ist nur das technische Grundgeruest aktiv.') }}