mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
added it_restore_items_from_trash test
This commit is contained in:
@@ -58,15 +58,16 @@ class TrashController extends Controller
|
||||
* Restore item from trash
|
||||
*
|
||||
* @param Request $request
|
||||
* @param $unique_id
|
||||
* @param $id
|
||||
* @return ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function restore(Request $request)
|
||||
{
|
||||
// Validate request
|
||||
$validator = Validator::make($request->input('data'), [
|
||||
'*.type' => 'required|string',
|
||||
'*.unique_id' => 'integer',
|
||||
// TODO: zrefaktorovat validator do requestu
|
||||
$validator = Validator::make($request->input('items'), [
|
||||
'*.type' => 'required|string',
|
||||
'*.id' => 'string',
|
||||
]);
|
||||
|
||||
// Return error
|
||||
@@ -79,20 +80,20 @@ class TrashController extends Controller
|
||||
return Demo::response_204();
|
||||
}
|
||||
|
||||
foreach($request->input('data') as $restore_item) {
|
||||
|
||||
foreach ($request->input('items') as $restore) {
|
||||
|
||||
// Get folder
|
||||
if ($restore_item['type'] === 'folder') {
|
||||
if ($restore['type'] === 'folder') {
|
||||
|
||||
// Get folder
|
||||
$item = Folder::onlyTrashed()
|
||||
->where('user_id', $user_id)
|
||||
->where('unique_id', $restore_item['unique_id'])
|
||||
->where('id', $restore['id'])
|
||||
->first();
|
||||
|
||||
// Restore item to home directory
|
||||
if ($request->has('to_home') && $request->to_home) {
|
||||
$item->parent_id = 0;
|
||||
$item->parent_id = null;
|
||||
$item->save();
|
||||
}
|
||||
} else {
|
||||
@@ -100,12 +101,12 @@ class TrashController extends Controller
|
||||
// Get item
|
||||
$item = File::onlyTrashed()
|
||||
->where('user_id', $user_id)
|
||||
->where('unique_id', $restore_item['unique_id'])
|
||||
->where('id', $restore['id'])
|
||||
->first();
|
||||
|
||||
// Restore item to home directory
|
||||
if ($request->has('to_home') && $request->to_home) {
|
||||
$item->folder_id = 0;
|
||||
$item->folder_id = null;
|
||||
$item->save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
|
||||
// Trash
|
||||
Route::group(['prefix' => 'trash'], function () {
|
||||
Route::post('/restore-items', [TrashController::class, 'restore']);
|
||||
Route::post('/restore', [TrashController::class, 'restore']);
|
||||
Route::delete('/dump', [TrashController::class, 'clear']);
|
||||
});
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use App\Models\File;
|
||||
use App\Models\Folder;
|
||||
use App\Models\User;
|
||||
use App\Services\SetupService;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Foundation\Testing\DatabaseMigrations;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Laravel\Sanctum\Sanctum;
|
||||
@@ -22,6 +23,49 @@ class TrashTest extends TestCase
|
||||
$this->setup = app()->make(SetupService::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_restore_items_from_trash()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$attributes = [
|
||||
'user_id' => $user->id,
|
||||
'deleted_at' => Carbon::now(),
|
||||
];
|
||||
|
||||
$folder = Folder::factory(Folder::class)
|
||||
->create($attributes);
|
||||
|
||||
$file = File::factory(File::class)
|
||||
->create($attributes);
|
||||
|
||||
$this->postJson("/api/trash/restore", [
|
||||
'items' => [
|
||||
[
|
||||
'id' => $file->id,
|
||||
'type' => 'file',
|
||||
],
|
||||
[
|
||||
'id' => $folder->id,
|
||||
'type' => 'folder',
|
||||
],
|
||||
],
|
||||
])->assertStatus(204);
|
||||
|
||||
$this->assertDatabaseHas('files', [
|
||||
'deleted_at' => null
|
||||
]);
|
||||
|
||||
$this->assertDatabaseHas('folders', [
|
||||
'deleted_at' => null
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user