add better errorhandling for cts sync
This commit is contained in:
parent
4c119b647d
commit
41426ff25b
|
|
@ -3,6 +3,9 @@
|
||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use App\Services\ChurchToolsService;
|
use App\Services\ChurchToolsService;
|
||||||
|
use CTApi\Exceptions\CTConnectException;
|
||||||
|
use CTApi\Exceptions\CTPermissionException;
|
||||||
|
use CTApi\Exceptions\CTRequestException;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Throwable;
|
use Throwable;
|
||||||
|
|
||||||
|
|
@ -24,8 +27,44 @@ public function handle(ChurchToolsService $churchToolsService): int
|
||||||
$this->line('Nicht gematchte Songs: '.$summary['unmatched_songs_count']);
|
$this->line('Nicht gematchte Songs: '.$summary['unmatched_songs_count']);
|
||||||
|
|
||||||
return self::SUCCESS;
|
return self::SUCCESS;
|
||||||
} catch (Throwable $exception) {
|
} catch (CTPermissionException $e) {
|
||||||
$this->error('Fehler beim Synchronisieren: '.$exception->getMessage());
|
$this->error('Authentifizierungsfehler: API-Token ungueltig oder abgelaufen.');
|
||||||
|
$this->error('Bitte pruefe CTS_API_TOKEN in der .env Datei.');
|
||||||
|
$this->line(' Details: '.$e->getMessage());
|
||||||
|
|
||||||
|
if ($this->getOutput()->isVerbose()) {
|
||||||
|
$this->line(' Exception: '.$e::class);
|
||||||
|
$this->line(' Trace: '.$e->getTraceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::FAILURE;
|
||||||
|
} catch (CTConnectException $e) {
|
||||||
|
$this->error('Verbindungsfehler: ChurchTools Server nicht erreichbar.');
|
||||||
|
$this->error('Bitte pruefe CTS_API_URL in der .env Datei und die Netzwerkverbindung.');
|
||||||
|
$this->line(' Details: '.$e->getMessage());
|
||||||
|
|
||||||
|
if ($this->getOutput()->isVerbose()) {
|
||||||
|
$this->line(' Exception: '.$e::class);
|
||||||
|
$this->line(' Trace: '.$e->getTraceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::FAILURE;
|
||||||
|
} catch (CTRequestException $e) {
|
||||||
|
$this->error('API-Fehler: '.$e->getMessage());
|
||||||
|
$this->line(' Exception: '.$e::class);
|
||||||
|
|
||||||
|
if ($this->getOutput()->isVerbose()) {
|
||||||
|
$this->line(' Trace: '.$e->getTraceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::FAILURE;
|
||||||
|
} catch (Throwable $e) {
|
||||||
|
$this->error('Fehler beim Synchronisieren: '.$e->getMessage());
|
||||||
|
$this->line(' Exception: '.$e::class);
|
||||||
|
|
||||||
|
if ($this->getOutput()->isVerbose()) {
|
||||||
|
$this->line(' Trace: '.$e->getTraceAsString());
|
||||||
|
}
|
||||||
|
|
||||||
return self::FAILURE;
|
return self::FAILURE;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use App\Services\ChurchToolsService;
|
use App\Services\ChurchToolsService;
|
||||||
|
use CTApi\Exceptions\CTConnectException;
|
||||||
|
use CTApi\Exceptions\CTPermissionException;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class SyncController extends Controller
|
class SyncController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -13,7 +16,26 @@ public function sync(ChurchToolsService $service): RedirectResponse
|
||||||
$service->sync();
|
$service->sync();
|
||||||
|
|
||||||
return back()->with('success', 'Daten wurden aktualisiert');
|
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) {
|
} catch (\Throwable $e) {
|
||||||
|
Log::error('CTS Sync: Unerwarteter Fehler', [
|
||||||
|
'nachricht' => $e->getMessage(),
|
||||||
|
'exception_klasse' => $e::class,
|
||||||
|
]);
|
||||||
|
|
||||||
return back()->with('error', 'Sync fehlgeschlagen: '.$e->getMessage());
|
return back()->with('error', 'Sync fehlgeschlagen: '.$e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue