create folder after upload first file

This commit is contained in:
Čarodej
2022-02-18 09:32:19 +01:00
parent 6db8b0662a
commit 5be55b52bd
10 changed files with 89 additions and 15 deletions

View File

@@ -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,

View File

@@ -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);

View File

@@ -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);
}
}

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -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);
});

View File

@@ -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);
}

View File

@@ -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);
});

View File

@@ -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");
}
}

View File

@@ -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);
});