mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-06 02:33:48 +00:00
file chunks refactoring
This commit is contained in:
@@ -1,45 +1,43 @@
|
||||
<?php
|
||||
namespace Domain\Files\Controllers;
|
||||
|
||||
use Domain\Files\Models\File;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Domain\Files\Requests\UploadRequest;
|
||||
use Domain\Files\Resources\FileResource;
|
||||
use Domain\Files\Actions\UploadFileAction;
|
||||
use Domain\Files\Actions\ProcessFileAction;
|
||||
use Support\Demo\Actions\FakeUploadFileAction;
|
||||
use App\Users\Exceptions\InvalidUserActionException;
|
||||
use Domain\Files\Actions\StoreFileChunksAction;
|
||||
use Illuminate\Contracts\Filesystem\FileNotFoundException;
|
||||
|
||||
class UploadFileController extends Controller
|
||||
{
|
||||
public function __construct(
|
||||
public UploadFileAction $uploadFiles,
|
||||
public FakeUploadFileAction $fakeUploadFile,
|
||||
public ProcessFileAction $processFie,
|
||||
public FakeUploadFileAction $fakeUploadFile,
|
||||
public StoreFileChunksAction $storeFileChunks,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload file for authenticated master|editor user
|
||||
*
|
||||
* @throws FileNotFoundException
|
||||
*/
|
||||
public function __invoke(UploadRequest $request)
|
||||
{
|
||||
public function __invoke(UploadRequest $request) {
|
||||
if (is_demo_account()) {
|
||||
return ($this->fakeUploadFile)($request);
|
||||
}
|
||||
|
||||
try {
|
||||
// Upload and store file record
|
||||
if (! $request->boolean('is_last')) {
|
||||
return ($this->uploadFiles)($request);
|
||||
}
|
||||
// Store file chunks
|
||||
$chunkPath = ($this->storeFileChunks)($request);
|
||||
|
||||
$file = ($this->uploadFiles)($request);
|
||||
// Proceed after last chunk
|
||||
if ($request->boolean('is_last')) {
|
||||
|
||||
// Process file
|
||||
$file = ($this->processFie)($request, null, $chunkPath);
|
||||
|
||||
return response(new FileResource($file), 201);
|
||||
} catch (InvalidUserActionException $e) {
|
||||
return response([
|
||||
'type' => 'error',
|
||||
'message' => $e->getMessage(),
|
||||
], 401);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user