From 2007279a69e1f2d82fabe8d8f84a11c7ffa71265 Mon Sep 17 00:00:00 2001 From: Peter Papp Date: Mon, 1 Mar 2021 16:59:57 +0100 Subject: [PATCH] added it_get_trash_root --- .../FileBrowser/BrowseController.php | 5 +- app/Http/Helpers/helpers.php | 6 +- routes/api.php | 2 +- tests/Feature/BrowseTest.php | 105 +++++++++++++++--- 4 files changed, 99 insertions(+), 19 deletions(-) diff --git a/app/Http/Controllers/FileBrowser/BrowseController.php b/app/Http/Controllers/FileBrowser/BrowseController.php index 7fe9bf53..051e4b60 100644 --- a/app/Http/Controllers/FileBrowser/BrowseController.php +++ b/app/Http/Controllers/FileBrowser/BrowseController.php @@ -29,12 +29,12 @@ class BrowseController extends Controller $folders_trashed = Folder::onlyTrashed() ->with(['trashed_folders', 'parent']) ->where('user_id', $user_id) - ->get(['parent_id', 'unique_id', 'name']); + ->get(['parent_id', 'id', 'name']); $folders = Folder::onlyTrashed() ->with(['parent']) ->where('user_id', $user_id) - ->whereIn('unique_id', filter_folders_ids($folders_trashed)) + ->whereIn('id', filter_folders_ids($folders_trashed)) ->sortable() ->get(); @@ -42,6 +42,7 @@ class BrowseController extends Controller $files_trashed = File::onlyTrashed() ->with(['parent']) ->where('user_id', $user_id) + ->whereNull('folder_id') ->whereNotIn('folder_id', array_values(array_unique(recursiveFind($folders_trashed->toArray(), 'unique_id')))) ->sortable() ->get(); diff --git a/app/Http/Helpers/helpers.php b/app/Http/Helpers/helpers.php index ac99c9aa..dbc22b74 100644 --- a/app/Http/Helpers/helpers.php +++ b/app/Http/Helpers/helpers.php @@ -418,11 +418,11 @@ function appeared_once($arr) * @param $folders * @return array */ -function filter_folders_ids($folders, $by_column = 'unique_id') +function filter_folders_ids($folders, $by_column = 'id') { - $folder_unique_ids = recursiveFind($folders->toArray(), $by_column); + $folder_ids = recursiveFind($folders->toArray(), $by_column); - return appeared_once($folder_unique_ids); + return appeared_once($folder_ids); } /** diff --git a/routes/api.php b/routes/api.php index 1199f0c7..3a772283 100644 --- a/routes/api.php +++ b/routes/api.php @@ -53,13 +53,13 @@ Route::group(['middleware' => ['auth:sanctum']], function () { Route::get('/sharing', [BrowseController::class, 'shared']); Route::get('/latest', [BrowseController::class, 'latest']); Route::get('/search', [BrowseController::class, 'search']); + Route::get('/trash', [BrowseController::class, 'trash']); }); // Trash Route::group(['prefix' => 'trash'], function () { Route::post('/restore-items', [TrashController::class, 'restore']); Route::delete('/empty-trash', [TrashController::class, 'clear']); - Route::get('/', [BrowseController::class, 'trash']); }); // Favourites diff --git a/tests/Feature/BrowseTest.php b/tests/Feature/BrowseTest.php index 0575a791..6c8561be 100644 --- a/tests/Feature/BrowseTest.php +++ b/tests/Feature/BrowseTest.php @@ -57,7 +57,7 @@ class BrowseTest extends TestCase $this->getJson("/api/browse/navigation") ->assertStatus(200) - ->assertJson([ + ->assertExactJson([ [ "name" => "Home", "location" => "base", @@ -149,7 +149,7 @@ class BrowseTest extends TestCase $this->getJson("/api/browse/folders/$root->id") ->assertStatus(200) - ->assertJson([ + ->assertExactJson([ [ "id" => $folder->id, "user_id" => $user->id, @@ -245,7 +245,7 @@ class BrowseTest extends TestCase $this->getJson("/api/browse/latest") ->assertStatus(200) - ->assertJson([ + ->assertExactJson([ [ "id" => $file_2->id, "user_id" => $user->id, @@ -297,6 +297,95 @@ class BrowseTest extends TestCase ]); } + public function it_get_participant_uploads() + { + + } + + /** + * @test + */ + public function it_get_trash_root() + { + $user = User::factory(User::class) + ->create(); + + Sanctum::actingAs($user); + + $folder = Folder::factory(Folder::class) + ->create([ + 'parent_id' => null, + 'name' => 'root', + 'user_id' => $user->id, + 'deleted_at' => Carbon::now(), + "user_scope" => "master", + ]); + + $file = File::factory(File::class) + ->create([ + 'folder_id' => null, + 'name' => 'Document', + 'basename' => 'document.pdf', + "mimetype" => "application/pdf", + "user_scope" => "master", + "type" => "file", + 'user_id' => $user->id, + 'deleted_at' => Carbon::now(), + ]); + + File::factory(File::class) + ->create([ + 'folder_id' => $folder->id, + 'name' => 'Document 1', + 'basename' => 'document-1.pdf', + "mimetype" => "application/pdf", + "user_scope" => "master", + "type" => "file", + 'user_id' => $user->id, + 'deleted_at' => Carbon::now(), + ]); + + $this->getJson("/api/browse/trash") + ->assertStatus(200) + ->assertExactJson([ + [ + "id" => $folder->id, + "user_id" => $user->id, + "parent_id" => null, + "name" => "root", + "color" => null, + "emoji" => null, + "user_scope" => "master", + "deleted_at" => $folder->deleted_at, + "created_at" => $folder->created_at, + "updated_at" => $folder->updated_at->toJson(), + "items" => 0, + "trashed_items" => 1, + "type" => "folder", + "parent" => null, + ], + [ + "id" => $file->id, + "user_id" => $user->id, + "folder_id" => null, + "thumbnail" => null, + "name" => "Document", + "basename" => "document.pdf", + "mimetype" => "application/pdf", + "filesize" => $file->filesize, + "type" => "file", + "metadata" => null, + "user_scope" => "master", + "deleted_at" => $file->deleted_at, + "created_at" => $file->created_at, + "updated_at" => $file->updated_at->toJson(), + "file_url" => "http://localhost/file/document.pdf", + "parent" => null + ], + ]); + } + + public function it_get_searched_file() { @@ -307,18 +396,8 @@ class BrowseTest extends TestCase } - public function it_get_trash() - { - - } - public function it_get_shared_files() { } - - public function it_get_participant_uploads() - { - - } }