mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-18 08:12:15 +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 }) => {
|
uploadFiles: ({ commit, getters, dispatch }, { form, fileSize, totalUploadedSize }) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// Get route
|
// 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
|
// Create cancel token for axios cancellation
|
||||||
const CancelToken = axios.CancelToken,
|
const CancelToken = axios.CancelToken,
|
||||||
|
|||||||
@@ -2,8 +2,10 @@
|
|||||||
|
|
||||||
use Domain\UploadRequest\Controllers\CreateUploadRequestController;
|
use Domain\UploadRequest\Controllers\CreateUploadRequestController;
|
||||||
use Domain\UploadRequest\Controllers\GetUploadRequestController;
|
use Domain\UploadRequest\Controllers\GetUploadRequestController;
|
||||||
|
use Domain\UploadRequest\Controllers\UploadFilesForUploadRequestController;
|
||||||
|
|
||||||
Route::get('/{uploadRequest}', GetUploadRequestController::class);
|
Route::get('/{uploadRequest}', GetUploadRequestController::class);
|
||||||
|
Route::post('/{uploadRequest}', UploadFilesForUploadRequestController::class);
|
||||||
|
|
||||||
Route::group(['middleware' => ['auth:sanctum']], function () {
|
Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||||
Route::post('/', CreateUploadRequestController::class);
|
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,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ class FileTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ class FileTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ class FileTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(401);
|
])->assertStatus(401);
|
||||||
|
|
||||||
@@ -161,7 +161,7 @@ class FileTest extends TestCase
|
|||||||
->postJson('/api/upload', [
|
->postJson('/api/upload', [
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(422);
|
])->assertStatus(422);
|
||||||
|
|
||||||
@@ -296,7 +296,7 @@ class FileTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -374,7 +374,7 @@ class FolderTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -334,7 +334,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
}
|
}
|
||||||
@@ -345,7 +345,7 @@ class VisitorManipulatingTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class TeamFileAccessTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
@@ -83,7 +83,7 @@ class TeamFileAccessTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ namespace Tests\Domain\UploadRequest;
|
|||||||
use Domain\UploadRequest\Notifications\UploadRequestNotification;
|
use Domain\UploadRequest\Notifications\UploadRequestNotification;
|
||||||
use Domain\UploadRequest\Models\UploadRequest;
|
use Domain\UploadRequest\Models\UploadRequest;
|
||||||
use App\Users\Models\User;
|
use App\Users\Models\User;
|
||||||
|
use Illuminate\Http\UploadedFile;
|
||||||
|
use Storage;
|
||||||
use Tests\TestCase;
|
use Tests\TestCase;
|
||||||
use Notification;
|
use Notification;
|
||||||
|
|
||||||
@@ -94,4 +96,40 @@ class UploadRequestTest extends TestCase
|
|||||||
'id' => $uploadRequest->id,
|
'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,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
@@ -49,7 +49,7 @@ class UserZippingTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => null,
|
'parent_id' => null,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
@@ -90,7 +90,7 @@ class UserZippingTest extends TestCase
|
|||||||
'filename' => $file->name,
|
'filename' => $file->name,
|
||||||
'file' => $file,
|
'file' => $file,
|
||||||
'parent_id' => $folder->id,
|
'parent_id' => $folder->id,
|
||||||
'path' => '/' . $file->name,
|
'path' => "/$file->name",
|
||||||
'is_last' => 'true',
|
'is_last' => 'true',
|
||||||
])->assertStatus(201);
|
])->assertStatus(201);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user