mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-17 15:52:15 +00:00
added it_remove_folder_from_favourites, it_delete_multiple_folder_hardly
This commit is contained in:
@@ -43,10 +43,10 @@ class FavouriteController extends Controller
|
||||
/**
|
||||
* Remove folder from user favourites
|
||||
*
|
||||
* @param $unique_id
|
||||
* @param $id
|
||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
||||
*/
|
||||
public function destroy($unique_id)
|
||||
public function destroy($id)
|
||||
{
|
||||
// Get user
|
||||
$user = Auth::user();
|
||||
@@ -56,9 +56,9 @@ class FavouriteController extends Controller
|
||||
}
|
||||
|
||||
// Remove folder from user favourites
|
||||
$user->favourite_folders()->detach($unique_id);
|
||||
$user->favourite_folders()->detach($id);
|
||||
|
||||
// Return updated favourites
|
||||
return $user->favourite_folders;
|
||||
return response($user->favourite_folders, 204);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ namespace App\Http\Tools;
|
||||
use App;
|
||||
use App\Models\Folder;
|
||||
use App\Models\Share;
|
||||
use App\File as UserFile;
|
||||
use App\Models\File as UserFile;
|
||||
use App\Http\Requests\FileFunctions\RenameItemRequest;
|
||||
use App\Models\User;
|
||||
use App\Models\Zip;
|
||||
@@ -295,14 +295,14 @@ class Editor
|
||||
$shared->delete();
|
||||
}
|
||||
|
||||
// Remove folder from user favourites
|
||||
DB::table('favourite_folder')
|
||||
->where('folder_id', $folder->id)
|
||||
->delete();
|
||||
|
||||
// Soft delete items
|
||||
if (! $item['force_delete']) {
|
||||
|
||||
// Remove folder from user favourites
|
||||
DB::table('favourite_folder')
|
||||
->where('folder_id', $folder->id)
|
||||
->delete();
|
||||
|
||||
// Soft delete folder record
|
||||
$folder->delete();
|
||||
}
|
||||
@@ -311,12 +311,11 @@ class Editor
|
||||
if ($item['force_delete']) {
|
||||
|
||||
// Get children folder ids
|
||||
$child_folders = filter_folders_ids($folder->trashed_folders, 'unique_id');
|
||||
$child_folders = filter_folders_ids($folder->trashed_folders, 'id');
|
||||
|
||||
// Get children files
|
||||
$files = UserFile::onlyTrashed()
|
||||
->where('user_id', $user->id)
|
||||
->whereIn('folder_id', Arr::flatten([$unique_id, $child_folders]))
|
||||
->whereIn('folder_id', Arr::flatten([$id, $child_folders]))
|
||||
->get();
|
||||
|
||||
// Remove all children files
|
||||
|
||||
@@ -243,7 +243,8 @@ class User extends Authenticatable
|
||||
*/
|
||||
public function favourite_folders()
|
||||
{
|
||||
return $this->belongsToMany(Folder::class, 'favourite_folder', 'user_id', 'folder_id', 'id', 'id')->with('shared:token,id,item_id,permission,protected,expire_in');
|
||||
return $this->belongsToMany(Folder::class, 'favourite_folder', 'user_id', 'folder_id', 'id', 'id')
|
||||
->with('shared:token,id,item_id,permission,protected,expire_in');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -64,7 +64,7 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
|
||||
|
||||
// Favourites
|
||||
Route::group(['prefix' => 'folders'], function () {
|
||||
Route::delete('/favourites/{unique_id}', [FavouriteController::class, 'destroy']);
|
||||
Route::delete('/favourites/{id}', [FavouriteController::class, 'destroy']);
|
||||
Route::post('/favourites', [FavouriteController::class, 'store']);
|
||||
});
|
||||
|
||||
|
||||
@@ -201,6 +201,32 @@ class FolderTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_remove_folder_from_favourites()
|
||||
{
|
||||
$folder = Folder::factory(Folder::class)
|
||||
->create();
|
||||
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$user
|
||||
->favourite_folders()
|
||||
->attach($folder->id);
|
||||
|
||||
$this->deleteJson("/api/folders/favourites/$folder->id")
|
||||
->assertStatus(204);
|
||||
|
||||
$this->assertDatabaseMissing('favourite_folder', [
|
||||
'user_id' => $user->id,
|
||||
'folder_id' => $folder->id,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
@@ -252,14 +278,44 @@ class FolderTest extends TestCase
|
||||
]);
|
||||
}
|
||||
|
||||
public function it_delete_folder_softly()
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function it_delete_multiple_folder_hardly()
|
||||
{
|
||||
$user = User::factory(User::class)
|
||||
->create();
|
||||
|
||||
}
|
||||
$folder_1 = Folder::factory(Folder::class)
|
||||
->create();
|
||||
|
||||
public function it_delete_folder_hardly()
|
||||
{
|
||||
$folder_2 = Folder::factory(Folder::class)
|
||||
->create();
|
||||
|
||||
Sanctum::actingAs($user);
|
||||
|
||||
$this->postJson("/api/remove", [
|
||||
'items' => [
|
||||
[
|
||||
'id' => $folder_1->id,
|
||||
'type' => 'folder',
|
||||
'force_delete' => true,
|
||||
],
|
||||
[
|
||||
'id' => $folder_2->id,
|
||||
'type' => 'folder',
|
||||
'force_delete' => true,
|
||||
],
|
||||
],
|
||||
])->assertStatus(204);
|
||||
|
||||
$this->assertDatabaseMissing('folders', [
|
||||
'id' => $folder_1->id,
|
||||
]);
|
||||
|
||||
$this->assertDatabaseMissing('folders', [
|
||||
'id' => $folder_2->id,
|
||||
]);
|
||||
}
|
||||
|
||||
public function it_delete_folder_with_their_content_within_softly()
|
||||
|
||||
Reference in New Issue
Block a user