43 lines
1.5 KiB
PHP
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());
|
|
}
|
|
}
|
|
}
|