23 lines
778 B
PHP
23 lines
778 B
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Modules\Import\Controllers;
|
||
|
|
|
||
|
|
use App\Http\Controllers\Controller;
|
||
|
|
use App\Modules\Import\Actions\ImportClientsAction;
|
||
|
|
use App\Modules\Import\Requests\ClientImportRequest;
|
||
|
|
use App\Modules\Import\Resources\ImportResultResource;
|
||
|
|
|
||
|
|
class ClientImportController extends Controller
|
||
|
|
{
|
||
|
|
public function store(ClientImportRequest $request, ImportClientsAction $action): ImportResultResource
|
||
|
|
{
|
||
|
|
// Import is admin-only. The frontend route middleware is not a security
|
||
|
|
// boundary, and ClientPolicy::create() grants everyone create access.
|
||
|
|
abort_unless((bool) $request->user()?->isAdmin(), 403);
|
||
|
|
|
||
|
|
$result = $action->handle((string) $request->file('file')->getRealPath());
|
||
|
|
|
||
|
|
return new ImportResultResource($result);
|
||
|
|
}
|
||
|
|
}
|