added it_restore_items_from_trash test

This commit is contained in:
Peter Papp
2021-03-02 13:19:23 +01:00
parent 9583c22b72
commit 42d243e2fe
3 changed files with 57 additions and 12 deletions

View File

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

View File

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

View File

@@ -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
*/