remote upload for shared route

This commit is contained in:
Čarodej
2022-04-21 16:47:22 +02:00
parent e4dd9de931
commit 8be0ae2a62
23 changed files with 152 additions and 90 deletions

View File

@@ -1,6 +1,6 @@
APP_NAME=Laravel APP_NAME=Laravel
APP_ENV=local APP_ENV=local
APP_KEY=base64:H+C6Ovly2gudhK4Zyn0EOED/ZOKNXthKIr6fv6bXJUM= APP_KEY=base64:8lOt4iwu42v5k2gtFMMiVwlK+Lrms8ZCPx9f6dp0Qlo=
APP_DEBUG=true APP_DEBUG=true
APP_URL=http://localhost APP_URL=http://localhost
APP_DEMO=false APP_DEMO=false

View File

@@ -7,6 +7,7 @@ use Domain\Files\Controllers\VisitorUploadFileController;
use Domain\Folders\Controllers\VisitorCreateFolderController; use Domain\Folders\Controllers\VisitorCreateFolderController;
use Domain\Sharing\Controllers\WebCrawlerOpenGraphController; use Domain\Sharing\Controllers\WebCrawlerOpenGraphController;
use Domain\Browsing\Controllers\VisitorBrowseFolderController; use Domain\Browsing\Controllers\VisitorBrowseFolderController;
use Domain\Files\Controllers\VisitorRemoteUploadFileController;
use Domain\Items\Controllers\VisitorMoveFileOrFolderController; use Domain\Items\Controllers\VisitorMoveFileOrFolderController;
use Domain\Items\Controllers\VisitorDeleteFileOrFolderController; use Domain\Items\Controllers\VisitorDeleteFileOrFolderController;
use Domain\Items\Controllers\VisitorRenameFileOrFolderController; use Domain\Items\Controllers\VisitorRenameFileOrFolderController;
@@ -16,6 +17,7 @@ use Domain\Browsing\Controllers\VisitorSearchFilesAndFoldersController;
// Browse functions // Browse functions
Route::group(['prefix' => 'editor'], function () { Route::group(['prefix' => 'editor'], function () {
Route::post('/upload/remote/{shared}', VisitorRemoteUploadFileController::class);
Route::post('/create-folder/{shared}', VisitorCreateFolderController::class); Route::post('/create-folder/{shared}', VisitorCreateFolderController::class);
Route::post('/upload/{shared}', VisitorUploadFileController::class); Route::post('/upload/{shared}', VisitorUploadFileController::class);

View File

@@ -1,15 +1,14 @@
<?php <?php
namespace Domain\Files\Actions; namespace Domain\Files\Actions;
use App\Users\Models\User; use Log;
use Domain\Files\Models\File;
use Error; use Error;
use ErrorException; use ErrorException;
use App\Users\Models\User;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use Domain\Sharing\Models\Share; use Domain\Files\Models\File;
use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\Storage;
use Log;
use Spatie\QueueableAction\QueueableAction; use Spatie\QueueableAction\QueueableAction;
class GetContentFromExternalSource class GetContentFromExternalSource
@@ -22,7 +21,8 @@ class GetContentFromExternalSource
public MoveFileToFTPStorageAction $moveFileToFTPStorage, public MoveFileToFTPStorageAction $moveFileToFTPStorage,
public ProcessImageThumbnailAction $createImageThumbnail, public ProcessImageThumbnailAction $createImageThumbnail,
public MoveFileToExternalStorageAction $moveFileToExternalStorage, public MoveFileToExternalStorageAction $moveFileToExternalStorage,
) {} ) {
}
public function __invoke( public function __invoke(
array $payload, array $payload,
@@ -80,7 +80,7 @@ class GetContentFromExternalSource
'ftp', 'azure' => ($this->moveFileToFTPStorage)($basename, $user->id), 'ftp', 'azure' => ($this->moveFileToFTPStorage)($basename, $user->id),
default => null default => null
}; };
} catch ( ErrorException | Error $e) { } catch (ErrorException | Error $e) {
Log::error("Remote upload failed as {$e->getMessage()}"); Log::error("Remote upload failed as {$e->getMessage()}");
Log::error($e->getTraceAsString()); Log::error($e->getTraceAsString());
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace Domain\Files\Actions; namespace Domain\Files\Actions;
use Domain\Files\Models\File; use Domain\Files\Models\File;

View File

@@ -1,10 +1,9 @@
<?php <?php
namespace Domain\Files\Controllers; namespace Domain\Files\Controllers;
use Domain\Folders\Models\Folder;
use Illuminate\Http\Response; use Illuminate\Http\Response;
use Domain\Sharing\Models\Share; use Domain\Sharing\Models\Share;
use Domain\Folders\Models\Folder;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Domain\Files\Requests\RemoteUploadRequest; use Domain\Files\Requests\RemoteUploadRequest;
use Domain\Files\Actions\GetContentFromExternalSource; use Domain\Files\Actions\GetContentFromExternalSource;
@@ -13,7 +12,8 @@ class RemoteUploadFileController extends Controller
{ {
public function __construct( public function __construct(
public GetContentFromExternalSource $getContentFromExternalSource, public GetContentFromExternalSource $getContentFromExternalSource,
) {} ) {
}
public function __invoke(RemoteUploadRequest $request, ?Share $shared = null): Response|array public function __invoke(RemoteUploadRequest $request, ?Share $shared = null): Response|array
{ {

View File

@@ -12,8 +12,8 @@ use Illuminate\Contracts\Filesystem\FileNotFoundException;
class UploadFileController extends Controller class UploadFileController extends Controller
{ {
public function __construct( public function __construct(
public ProcessFileAction $processFie, public ProcessFileAction $processFie,
public FakeUploadFileAction $fakeUploadFile, public FakeUploadFileAction $fakeUploadFile,
public StoreFileChunksAction $storeFileChunks, public StoreFileChunksAction $storeFileChunks,
) { ) {
} }
@@ -23,7 +23,8 @@ class UploadFileController extends Controller
* *
* @throws FileNotFoundException * @throws FileNotFoundException
*/ */
public function __invoke(UploadRequest $request) { public function __invoke(UploadRequest $request)
{
if (is_demo_account()) { if (is_demo_account()) {
return ($this->fakeUploadFile)($request); return ($this->fakeUploadFile)($request);
} }
@@ -33,7 +34,6 @@ class UploadFileController extends Controller
// Proceed after last chunk // Proceed after last chunk
if ($request->boolean('is_last')) { if ($request->boolean('is_last')) {
// Process file // Process file
$file = ($this->processFie)($request, null, $chunkPath); $file = ($this->processFie)($request, null, $chunkPath);

View File

@@ -0,0 +1,39 @@
<?php
namespace Domain\Files\Controllers;
use Illuminate\Http\Response;
use Domain\Sharing\Models\Share;
use App\Http\Controllers\Controller;
use Domain\Files\Requests\RemoteUploadRequest;
use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction;
use Domain\Files\Actions\GetContentFromExternalSource;
class VisitorRemoteUploadFileController extends Controller
{
public function __construct(
public ProtectShareRecordAction $protectShareRecord,
public VerifyAccessToItemAction $verifyAccessToItem,
public GetContentFromExternalSource $getContentFromExternalSource,
) {
}
public function __invoke(RemoteUploadRequest $request, ?Share $shared = null): Response|array
{
// Check ability to access protected share record
($this->protectShareRecord)($shared);
// Check shared permission
if (is_visitor($shared)) {
abort(403, "You don't have access to this item");
}
// Check access to requested directory
($this->verifyAccessToItem)($request->input('parent_id'), $shared);
// Execute job for get content from url and save
($this->getContentFromExternalSource)($request->all(), $shared->user);
return response('Files were successfully added to the upload queue', 201);
}
}

View File

@@ -8,7 +8,7 @@ use Domain\Files\Requests\UploadRequest;
use Domain\Files\Resources\FileResource; use Domain\Files\Resources\FileResource;
use Domain\Files\Actions\ProcessFileAction; use Domain\Files\Actions\ProcessFileAction;
use Support\Demo\Actions\FakeUploadFileAction; use Support\Demo\Actions\FakeUploadFileAction;
use App\Users\Exceptions\InvalidUserActionException; use Domain\Files\Actions\StoreFileChunksAction;
use Domain\Sharing\Actions\ProtectShareRecordAction; use Domain\Sharing\Actions\ProtectShareRecordAction;
use Domain\Sharing\Actions\VerifyAccessToItemAction; use Domain\Sharing\Actions\VerifyAccessToItemAction;
use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Contracts\Filesystem\FileNotFoundException;
@@ -19,8 +19,9 @@ use Illuminate\Contracts\Filesystem\FileNotFoundException;
class VisitorUploadFileController extends Controller class VisitorUploadFileController extends Controller
{ {
public function __construct( public function __construct(
private ProcessFileAction $uploadFile, public ProcessFileAction $processFie,
private FakeUploadFileAction $fakeUploadFile, public StoreFileChunksAction $storeFileChunks,
private FakeUploadFileAction $fakeUploadFile,
private ProtectShareRecordAction $protectShareRecord, private ProtectShareRecordAction $protectShareRecord,
private VerifyAccessToItemAction $verifyAccessToItem, private VerifyAccessToItemAction $verifyAccessToItem,
) { ) {
@@ -48,19 +49,18 @@ class VisitorUploadFileController extends Controller
// Check access to requested directory // Check access to requested directory
($this->verifyAccessToItem)($request->input('parent_id'), $shared); ($this->verifyAccessToItem)($request->input('parent_id'), $shared);
try { // Store file chunks
// Return new uploaded file $chunkPath = ($this->storeFileChunks)($request);
$file = ($this->uploadFile)($request, $shared->user_id);
// Proceed after last chunk
if ($request->boolean('is_last')) {
// Process file
$file = ($this->processFie)($request, $shared->user_id, $chunkPath);
// Set public access url // Set public access url
$file->setSharedPublicUrl($shared->token); $file->setSharedPublicUrl($shared->token);
return response(new FileResource($file), 201); return response(new FileResource($file), 201);
} catch (InvalidUserActionException $e) {
return response([
'type' => 'error',
'message' => $e->getMessage(),
], 401);
} }
} }
} }

View File

@@ -24,7 +24,7 @@ class RemoteUploadRequest extends FormRequest
{ {
return [ return [
'urls.*' => 'required|url', 'urls.*' => 'required|url',
'parent_id' => 'nullable|uuid', 'parent_id' => 'nullable|uuid',
]; ];
} }
} }

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace Domain\Files\Requests; namespace Domain\Files\Requests;
use Domain\Admin\Rules\DisabledMimetypes; use Domain\Admin\Rules\DisabledMimetypes;

View File

@@ -6,13 +6,14 @@ use Domain\Folders\Models\Folder;
use Domain\Files\Resources\FileResource; use Domain\Files\Resources\FileResource;
use Domain\Files\Actions\ProcessFileAction; use Domain\Files\Actions\ProcessFileAction;
use Domain\UploadRequest\Models\UploadRequest; use Domain\UploadRequest\Models\UploadRequest;
use App\Users\Exceptions\InvalidUserActionException; use Domain\Files\Actions\StoreFileChunksAction;
use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Contracts\Filesystem\FileNotFoundException;
class UploadFilesForUploadRequestController class UploadFilesForUploadRequestController
{ {
public function __construct( public function __construct(
private ProcessFileAction $uploadFile, private ProcessFileAction $processFie,
private StoreFileChunksAction $storeFileChunks,
) { ) {
} }
@@ -29,14 +30,18 @@ class UploadFilesForUploadRequestController
$this->createFolder($uploadRequest); $this->createFolder($uploadRequest);
} }
try { // Set default parent_id for uploaded file
// Set default parent_id for uploaded file if (is_null($request->input('parent_id'))) {
if (is_null($request->input('parent_id'))) { $request->merge(['parent_id' => $uploadRequest->id]);
$request->merge(['parent_id' => $uploadRequest->id]); }
}
// Upload file // Store file chunks
$file = ($this->uploadFile)($request, $uploadRequest->user_id); $chunkPath = ($this->storeFileChunks)($request);
// Proceed after last chunk
if ($request->boolean('is_last')) {
// Process file
$file = ($this->processFie)($request, $uploadRequest->user_id, $chunkPath);
// Set public access url // Set public access url
$file->setUploadRequestPublicUrl($uploadRequest->id); $file->setUploadRequestPublicUrl($uploadRequest->id);
@@ -44,13 +49,7 @@ class UploadFilesForUploadRequestController
// Set timestamp for auto filling // Set timestamp for auto filling
cache()->set("auto-filling.$uploadRequest->id", now()->toString()); cache()->set("auto-filling.$uploadRequest->id", now()->toString());
// Return new uploaded file
return response(new FileResource($file), 201); return response(new FileResource($file), 201);
} catch (InvalidUserActionException $e) {
return response([
'type' => 'error',
'message' => $e->getMessage(),
], 401);
} }
} }

View File

@@ -1,17 +1,17 @@
<?php <?php
function accessDeniedError(): array function accessDeniedError(): array
{ {
return [ return [
'type' => 'error', 'type' => 'error',
'message' => 'Access Denied', 'message' => 'Access Denied',
]; ];
} }
function userActionNotAllowedError(): array function userActionNotAllowedError(): array
{ {
return [ return [
'type' => 'error', 'type' => 'error',
'message' => 'This user action is not allowed.', 'message' => 'This user action is not allowed.',
]; ];
} }

View File

@@ -279,7 +279,8 @@ class AdminTest extends TestCase
->create("fake-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -1,5 +1,4 @@
<?php <?php
namespace Tests\Domain\Files; namespace Tests\Domain\Files;
use Storage; use Storage;
@@ -42,7 +41,8 @@ class FileTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => '.jpg',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -61,7 +61,7 @@ class FileTest extends TestCase
]) ])
->collapse() ->collapse()
->each( ->each(
fn($item) => Storage::assertExists( fn ($item) => Storage::assertExists(
"files/{$user->id}/{$item['name']}-{$file->basename}" "files/{$user->id}/{$item['name']}-{$file->basename}"
) )
); );
@@ -82,7 +82,8 @@ class FileTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -175,7 +176,8 @@ class FileTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'jpeg',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -208,6 +210,7 @@ class FileTest extends TestCase
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'file' => $file, 'file' => $file,
'extension' => 'pdf',
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
'is_last' => 'true', 'is_last' => 'true',
@@ -338,7 +341,7 @@ class FileTest extends TestCase
// Assert thumbnail was deleted // Assert thumbnail was deleted
getThumbnailFileList('fake-image.jpeg') getThumbnailFileList('fake-image.jpeg')
->each(fn($thumbnail) => Storage::assertMissing("files/$user->id/$thumbnail")); ->each(fn ($thumbnail) => Storage::assertMissing("files/$user->id/$thumbnail"));
} }
/** /**
@@ -398,7 +401,8 @@ class FileTest extends TestCase
->create("fake-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -451,7 +455,8 @@ class FileTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'jpg',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => '/' . $file->name, 'path' => '/' . $file->name,

View File

@@ -371,7 +371,8 @@ class FolderTest extends TestCase
->create("fake-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -30,7 +30,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'path' => '/', 'path' => '/',
'parent_id' => $folder->id, 'parent_id' => $folder->id,
@@ -59,7 +60,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'path' => "/level_1/level_2/level_3/$file->name", 'path' => "/level_1/level_2/level_3/$file->name",
'parent_id' => null, 'parent_id' => null,
@@ -69,7 +71,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'path' => "/level_1/level_2/level_3/$file->name", 'path' => "/level_1/level_2/level_3/$file->name",
'parent_id' => null, 'parent_id' => null,
@@ -127,7 +130,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'path' => "/another_folder/level_2/level_3/$file->name", 'path' => "/another_folder/level_2/level_3/$file->name",
'parent_id' => null, 'parent_id' => null,
@@ -163,7 +167,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $brother->name, 'name' => $brother->name,
'extension' => 'pdf',
'file' => $brother, 'file' => $brother,
'path' => "/Folder/Brother/$brother->name", 'path' => "/Folder/Brother/$brother->name",
'parent_id' => null, 'parent_id' => null,
@@ -173,7 +178,8 @@ class FolderUploadTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $sister->name, 'name' => $sister->name,
'extension' => 'pdf',
'file' => $sister, 'file' => $sister,
'path' => "/Folder/Sister/$sister->name", 'path' => "/Folder/Sister/$sister->name",
'parent_id' => null, 'parent_id' => null,

View File

@@ -330,7 +330,8 @@ class VisitorManipulatingTest extends TestCase
$this $this
->withUnencryptedCookies($cookie) ->withUnencryptedCookies($cookie)
->post("/api/editor/upload/$share->token", [ ->post("/api/editor/upload/$share->token", [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -341,7 +342,8 @@ class VisitorManipulatingTest extends TestCase
// Check public shared item // Check public shared item
if (! $is_protected) { if (! $is_protected) {
$this->postJson("/api/editor/upload/$share->token", [ $this->postJson("/api/editor/upload/$share->token", [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -32,7 +32,8 @@ class TeamFileAccessTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -80,7 +81,8 @@ class TeamFileAccessTest extends TestCase
$this $this
->actingAs($user) ->actingAs($user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -283,7 +283,8 @@ class TeamsTest extends TestCase
$this $this
->actingAs($member) ->actingAs($member)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -37,7 +37,7 @@ class TrafficTest extends TestCase
$this $this
->actingAs($this->user) ->actingAs($this->user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $this->file->name, 'name' => $this->file->name,
'file' => $this->file, 'file' => $this->file,
'parent_id' => null, 'parent_id' => null,
'path' => '/' . $this->file->name, 'path' => '/' . $this->file->name,
@@ -58,7 +58,7 @@ class TrafficTest extends TestCase
$this $this
->actingAs($this->user) ->actingAs($this->user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $this->file->name, 'name' => $this->file->name,
'file' => $this->file, 'file' => $this->file,
'parent_id' => null, 'parent_id' => null,
'path' => '/' . $this->file->name, 'path' => '/' . $this->file->name,
@@ -79,7 +79,7 @@ class TrafficTest extends TestCase
$this $this
->actingAs($this->user) ->actingAs($this->user)
->postJson('/api/upload', [ ->postJson('/api/upload', [
'filename' => $secondFile->name, 'name' => $secondFile->name,
'file' => $secondFile, 'file' => $secondFile,
'parent_id' => null, 'parent_id' => null,
'path' => '/' . $secondFile->name, 'path' => '/' . $secondFile->name,
@@ -117,7 +117,7 @@ class TrafficTest extends TestCase
// Check public shared item // Check public shared item
$this->postJson("/api/editor/upload/$share->token", [ $this->postJson("/api/editor/upload/$share->token", [
'filename' => $this->file->name, 'name' => $this->file->name,
'file' => $this->file, 'file' => $this->file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => '/' . $this->file->name, 'path' => '/' . $this->file->name,

View File

@@ -75,7 +75,7 @@ class TrashTest extends TestCase
->image('fake-image.jpg'); ->image('fake-image.jpg');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $image->name, 'name' => $image->name,
'file' => $image, 'file' => $image,
'parent_id' => null, 'parent_id' => null,
'path' => '/' . $image->name, 'path' => '/' . $image->name,

View File

@@ -150,7 +150,8 @@ class UploadRequestTest extends TestCase
$this $this
->postJson("/api/upload-request/$uploadRequest->id/upload", [ ->postJson("/api/upload-request/$uploadRequest->id/upload", [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -195,7 +196,8 @@ class UploadRequestTest extends TestCase
$this $this
->postJson("/api/upload-request/$uploadRequest->id/upload", [ ->postJson("/api/upload-request/$uploadRequest->id/upload", [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -239,7 +241,7 @@ class UploadRequestTest extends TestCase
$this $this
->postJson("/api/upload-request/$uploadRequest->id/upload", [ ->postJson("/api/upload-request/$uploadRequest->id/upload", [
'filename' => $file->name, 'name' => $file->name,
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -312,7 +314,8 @@ class UploadRequestTest extends TestCase
$this $this
->postJson("/api/upload-request/$uploadRequest->id/upload", [ ->postJson("/api/upload-request/$uploadRequest->id/upload", [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",

View File

@@ -32,7 +32,8 @@ class UserZippingTest extends TestCase
->create("fake-inner-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-inner-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -46,7 +47,8 @@ class UserZippingTest extends TestCase
->create("fake-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => null, 'parent_id' => null,
'path' => "/$file->name", 'path' => "/$file->name",
@@ -87,7 +89,8 @@ class UserZippingTest extends TestCase
->create("fake-file-$index.pdf", 1200, 'application/pdf'); ->create("fake-file-$index.pdf", 1200, 'application/pdf');
$this->postJson('/api/upload', [ $this->postJson('/api/upload', [
'filename' => $file->name, 'name' => $file->name,
'extension' => 'pdf',
'file' => $file, 'file' => $file,
'parent_id' => $folder->id, 'parent_id' => $folder->id,
'path' => "/$file->name", 'path' => "/$file->name",