json($sync->status()); } public function export(Request $request, HelpdeskSyncService $sync): JsonResponse { $settingsOnly = $request->boolean('settings_only'); $includeFiles = ! $request->boolean('without_files'); return response()->json( $sync->snapshot( settingsOnly: $settingsOnly, includeFiles: $includeFiles, ) ); } public function import(Request $request, HelpdeskSyncService $sync): JsonResponse { $validated = $request->validate([ 'snapshot' => ['required', 'array'], 'mirror' => ['sometimes', 'boolean'], ]); try { $result = $sync->importSnapshot( $validated['snapshot'], mirror: (bool) ($validated['mirror'] ?? false), ); } catch (Throwable $exception) { report($exception); return response()->json([ 'ok' => false, 'message' => $exception->getMessage(), ], 422); } return response()->json([ 'ok' => true, 'result' => $result, ]); } }