diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index adb82f42..02f1b424 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -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, diff --git a/routes/upload-request.php b/routes/upload-request.php index ddc46ec9..2ee331ec 100644 --- a/routes/upload-request.php +++ b/routes/upload-request.php @@ -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); diff --git a/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php b/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php new file mode 100644 index 00000000..42bf245a --- /dev/null +++ b/src/Domain/UploadRequest/Controllers/UploadFilesForUploadRequestController.php @@ -0,0 +1,31 @@ +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); + } +} \ No newline at end of file diff --git a/tests/Domain/Admin/AdminTest.php b/tests/Domain/Admin/AdminTest.php index c70e2392..270610b2 100644 --- a/tests/Domain/Admin/AdminTest.php +++ b/tests/Domain/Admin/AdminTest.php @@ -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); }); diff --git a/tests/Domain/Files/FileTest.php b/tests/Domain/Files/FileTest.php index 18ca4568..ab9c450f 100644 --- a/tests/Domain/Files/FileTest.php +++ b/tests/Domain/Files/FileTest.php @@ -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); }); diff --git a/tests/Domain/Folders/FolderTest.php b/tests/Domain/Folders/FolderTest.php index ba807747..2a8e9330 100644 --- a/tests/Domain/Folders/FolderTest.php +++ b/tests/Domain/Folders/FolderTest.php @@ -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); }); diff --git a/tests/Domain/Sharing/VisitorManipulatingTest.php b/tests/Domain/Sharing/VisitorManipulatingTest.php index 0cf3c903..5a154389 100644 --- a/tests/Domain/Sharing/VisitorManipulatingTest.php +++ b/tests/Domain/Sharing/VisitorManipulatingTest.php @@ -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); } diff --git a/tests/Domain/Teams/TeamFileAccessTest.php b/tests/Domain/Teams/TeamFileAccessTest.php index e4b40722..1f563a64 100644 --- a/tests/Domain/Teams/TeamFileAccessTest.php +++ b/tests/Domain/Teams/TeamFileAccessTest.php @@ -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); }); diff --git a/tests/Domain/UploadRequest/UploadRequestTest.php b/tests/Domain/UploadRequest/UploadRequestTest.php index ba285999..1c0df8f3 100644 --- a/tests/Domain/UploadRequest/UploadRequestTest.php +++ b/tests/Domain/UploadRequest/UploadRequestTest.php @@ -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"); + } } \ No newline at end of file diff --git a/tests/Domain/Zip/UserZippingTest.php b/tests/Domain/Zip/UserZippingTest.php index c64e0dd3..422cd60f 100644 --- a/tests/Domain/Zip/UserZippingTest.php +++ b/tests/Domain/Zip/UserZippingTest.php @@ -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); });