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