mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
create folder after upload first file
This commit is contained in:
5
resources/js/store/modules/fileFunctions.js
vendored
5
resources/js/store/modules/fileFunctions.js
vendored
@@ -145,7 +145,10 @@ const actions = {
|
||||
uploadFiles: ({ commit, getters, dispatch }, { form, fileSize, totalUploadedSize }) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// Get route
|
||||
let route = getters.sharedDetail ? `/api/editor/upload/${router.currentRoute.params.token}` : '/api/upload'
|
||||
let route = {
|
||||
RequestUpload: `/api/upload-request/${router.currentRoute.params.token}`,
|
||||
Public: `/api/editor/upload/${router.currentRoute.params.token}`,
|
||||
}[router.currentRoute.name] || '/api/upload'
|
||||
|
||||
// Create cancel token for axios cancellation
|
||||
const CancelToken = axios.CancelToken,
|
||||
|
||||
@@ -2,8 +2,10 @@
|
||||
|
||||
use Domain\UploadRequest\Controllers\CreateUploadRequestController;
|
||||
use Domain\UploadRequest\Controllers\GetUploadRequestController;
|
||||
use Domain\UploadRequest\Controllers\UploadFilesForUploadRequestController;
|
||||
|
||||
Route::get('/{uploadRequest}', GetUploadRequestController::class);
|
||||
Route::post('/{uploadRequest}', UploadFilesForUploadRequestController::class);
|
||||
|
||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
Route::post('/', CreateUploadRequestController::class);
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace Domain\UploadRequest\Controllers;
|
||||
|
||||
use DB;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class UploadFilesForUploadRequestController
|
||||
{
|
||||
public function __invoke(Request $request, UploadRequest $uploadRequest)
|
||||
{
|
||||
$folder = Folder::where('id', $uploadRequest->id);
|
||||
|
||||
// Create folder if not exist
|
||||
if ($folder->doesntExist()) {
|
||||
|
||||
$timestampName = format_date($uploadRequest->created_at, 'd. M. Y');
|
||||
|
||||
DB::table('folders')->insert([
|
||||
'id' => $uploadRequest->id,
|
||||
'parent_id' => $uploadRequest->folder_id,
|
||||
'user_id' => $uploadRequest->user_id,
|
||||
'name' => "Upload Request from $timestampName",
|
||||
]);
|
||||
}
|
||||
|
||||
return response('Done!', 201);
|
||||
}
|
||||
}
|
||||
@@ -318,7 +318,7 @@ class AdminTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
@@ -43,7 +43,7 @@ class FileTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
|
||||
@@ -85,7 +85,7 @@ class FileTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
|
||||
@@ -130,7 +130,7 @@ class FileTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(401);
|
||||
|
||||
@@ -161,7 +161,7 @@ class FileTest extends TestCase
|
||||
->postJson('/api/upload', [
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(422);
|
||||
|
||||
@@ -296,7 +296,7 @@ class FileTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
@@ -374,7 +374,7 @@ class FolderTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
@@ -334,7 +334,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
}
|
||||
@@ -345,7 +345,7 @@ class VisitorManipulatingTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ class TeamFileAccessTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
@@ -83,7 +83,7 @@ class TeamFileAccessTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
@@ -5,6 +5,8 @@ namespace Tests\Domain\UploadRequest;
|
||||
use Domain\UploadRequest\Notifications\UploadRequestNotification;
|
||||
use Domain\UploadRequest\Models\UploadRequest;
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Storage;
|
||||
use Tests\TestCase;
|
||||
use Notification;
|
||||
|
||||
@@ -94,4 +96,40 @@ class UploadRequestTest extends TestCase
|
||||
'id' => $uploadRequest->id,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_upload_file_and_create_upload_request_folder()
|
||||
{
|
||||
$user = User::factory()
|
||||
->hasSettings()
|
||||
->create();
|
||||
|
||||
$uploadRequest = UploadRequest::factory()
|
||||
->create([
|
||||
'user_id' => $user->id,
|
||||
'created_at' => now(),
|
||||
]);
|
||||
|
||||
$file = UploadedFile::fake()
|
||||
->create('fake-file.pdf', 12000000, 'application/pdf');
|
||||
|
||||
$this
|
||||
->actingAs($user)
|
||||
->postJson("/api/upload-request/$uploadRequest->id", [
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $uploadRequest->id,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
|
||||
$this->assertDatabaseHas('folders', [
|
||||
'id' => $uploadRequest->id,
|
||||
'name' => 'Upload Request from 01. Jan. 2021',
|
||||
]);
|
||||
|
||||
//Storage::assertExists("files/$user->id/$file->basename");
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ class UserZippingTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
@@ -49,7 +49,7 @@ class UserZippingTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => null,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
@@ -90,7 +90,7 @@ class UserZippingTest extends TestCase
|
||||
'filename' => $file->name,
|
||||
'file' => $file,
|
||||
'parent_id' => $folder->id,
|
||||
'path' => '/' . $file->name,
|
||||
'path' => "/$file->name",
|
||||
'is_last' => 'true',
|
||||
])->assertStatus(201);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user