updated design
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\Helpdesk\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Modules\Helpdesk\Services\HelpdeskSyncService;
|
||||
use Throwable;
|
||||
|
||||
final class HelpdeskSyncController extends Controller
|
||||
{
|
||||
public function status(HelpdeskSyncService $sync): JsonResponse
|
||||
{
|
||||
return response()->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,
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user