pp-planer/app/Http/Controllers/SyncController.php
2026-03-29 15:24:13 +02:00

43 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Services\ChurchToolsService;
use CTApi\Exceptions\CTConnectException;
use CTApi\Exceptions\CTPermissionException;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\Log;
class SyncController extends Controller
{
public function sync(ChurchToolsService $service): RedirectResponse
{
try {
$service->sync();
return back()->with('success', 'Daten wurden aktualisiert');
} catch (CTPermissionException $e) {
Log::error('CTS Sync: Authentifizierungsfehler', [
'nachricht' => $e->getMessage(),
'exception_klasse' => $e::class,
]);
return back()->with('error', 'Sync fehlgeschlagen: Authentifizierung abgelehnt. Bitte prüfe den API-Token in der .env Datei.');
} catch (CTConnectException $e) {
Log::error('CTS Sync: Verbindungsfehler', [
'nachricht' => $e->getMessage(),
'exception_klasse' => $e::class,
]);
return back()->with('error', 'Sync fehlgeschlagen: Verbindung zu ChurchTools nicht möglich. Bitte prüfe die URL und Netzwerkverbindung.');
} catch (\Throwable $e) {
Log::error('CTS Sync: Unerwarteter Fehler', [
'nachricht' => $e->getMessage(),
'exception_klasse' => $e::class,
]);
return back()->with('error', 'Sync fehlgeschlagen: '.$e->getMessage());
}
}
}