Files
ntspi-app/app/Containers/Dashboard/UI/WEB/Controllers/SvedenController.php
T
F4ilji c9fca0bf29 feat: add Sveden update feature
- SvedenController: upload zip and extract to public/sveden
- UpdateSvedenAction: orchestrates temp file handling and extraction
- ExtractSvedenArchiveTask: validates and extracts sveden/abitur folders with security checks
- Sveden.vue: upload UI with progress indicator
- Added routes: GET/POST /dashboard/sveden
- Added quick action: Обновить Sveden
2026-06-30 16:12:16 +05:00

42 lines
1.1 KiB
PHP

<?php
namespace App\Containers\Dashboard\UI\WEB\Controllers;
use App\Containers\Dashboard\Actions\Sveden\UpdateSvedenAction;
use App\Http\Controllers\Controller;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
use Inertia\Inertia;
class SvedenController extends Controller
{
public function __construct(
private readonly UpdateSvedenAction $updateAction,
) {}
public function index(): \Inertia\Response
{
return Inertia::render('Dashboard/Sveden');
}
public function store(Request $request): JsonResponse
{
$request->validate([
'archive' => ['required', 'file', 'mimes:zip', 'max:102400'],
]);
try {
$result = $this->updateAction->run($request->file('archive'));
return response()->json($result);
} catch (\Throwable $e) {
report($e);
return response()->json([
'success' => false,
'message' => 'Ошибка при обновлении: ' . $e->getMessage(),
], 500);
}
}
}