fix 1.2.7
This commit is contained in:
@@ -126,6 +126,52 @@ class CalendarioConnessioneController extends Controller
|
||||
return redirect('/impostazioni#calendario')->with('error', 'Errore sync: ' . $errorMsg);
|
||||
}
|
||||
|
||||
public function syncAll(): JsonResponse
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
$connections = CalendarioConnessione::where('is_active', true)->get();
|
||||
$results = [];
|
||||
|
||||
foreach ($connections as $connessione) {
|
||||
$result = match ($connessione->tipo) {
|
||||
'caldav' => app(CalDavService::class)->syncEvents($connessione),
|
||||
'google_calendar' => app(GoogleCalendarSyncService::class)->syncEvents($connessione),
|
||||
default => ['success' => false, 'imported' => 0, 'exported' => 0, 'errors' => ['Tipo sconosciuto']],
|
||||
};
|
||||
|
||||
$connessione->update(['last_sync_at' => now()]);
|
||||
|
||||
if ($result['success']) {
|
||||
$connessione->update(['stato' => 'connesso']);
|
||||
} else {
|
||||
$errorMsg = implode('; ', $result['errors']);
|
||||
$connessione->update(['stato' => 'errore', 'last_error_at' => now(), 'last_error_message' => $errorMsg]);
|
||||
}
|
||||
|
||||
$results[] = [
|
||||
'id' => $connessione->id,
|
||||
'nome' => $connessione->nome,
|
||||
'success' => $result['success'],
|
||||
'imported' => $result['imported'],
|
||||
'exported' => $result['exported'],
|
||||
'errors' => $result['errors'],
|
||||
];
|
||||
}
|
||||
|
||||
$totalImported = array_sum(array_column($results, 'imported'));
|
||||
$totalExported = array_sum(array_column($results, 'exported'));
|
||||
$hasErrors = in_array(false, array_column($results, 'success'), true);
|
||||
|
||||
return response()->json([
|
||||
'success' => !$hasErrors,
|
||||
'results' => $results,
|
||||
'total_imported' => $totalImported,
|
||||
'total_exported' => $totalExported,
|
||||
'connections' => count($results),
|
||||
]);
|
||||
}
|
||||
|
||||
public function reorder(Request $request): JsonResponse
|
||||
{
|
||||
$this->authorizeWrite('settings');
|
||||
|
||||
Reference in New Issue
Block a user