1
0
mirror of https://github.com/Kovah/LinkAce.git synced 2025-04-21 23:42:10 +02:00

Implement a form request for clearing the trash for models

This commit is contained in:
Kovah 2020-06-30 23:39:44 +02:00
parent bfec72de37
commit aa9ea21140
No known key found for this signature in database
GPG Key ID: AAAA031BA9830D7B
4 changed files with 34 additions and 14 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\App;
use App\Http\Controllers\Controller;
use App\Http\Requests\TrashClearRequest;
use App\Http\Requests\TrashRestoreRequest;
use App\Models\Link;
use App\Models\LinkList;
@ -49,15 +50,14 @@ class TrashController extends Controller
/**
* Permanently delete entries for a model from the trash.
*
* @param Request $request
* @param string $model
* @param TrashClearRequest $request
* @return RedirectResponse
*/
public function clearTrash(Request $request, $model): RedirectResponse
public function clearTrash(TrashClearRequest $request): RedirectResponse
{
TrashRepository::delete($model);
TrashRepository::delete($request->input('model'));
flash(trans('trash.delete_success.' . $model), 'success');
flash(trans('trash.delete_success.' . $request->input('model')), 'success');
return redirect()->route('get-trash');
}

View File

@ -9,6 +9,7 @@ use App\Http\Controllers\API\NoteController;
use App\Http\Controllers\API\SearchController;
use App\Http\Controllers\API\TagController;
use App\Http\Controllers\API\TagLinksController;
use App\Http\Controllers\API\TrashController;
/*
|--------------------------------------------------------------------------
@ -77,5 +78,16 @@ Route::prefix('v1')->group(function () {
->name('api.search.tags');
Route::get('search/lists', [SearchController::class, 'searchLists'])
->name('api.search.lists');
Route::get('trash/links', [TrashController::class, 'getLinks'])
->name('api.trash.links');
Route::get('trash/lists', [TrashController::class, 'getLists'])
->name('api.trash.lists');
Route::get('trash/tags', [TrashController::class, 'getTags'])
->name('api.trash.tags');
Route::get('trash/notes', [TrashController::class, 'getNotes'])
->name('api.trash.notes');
Route::post('trash/delete', [TrashController::class, 'getNotes'])
->name('api.trash.notes');
});
});

View File

@ -109,7 +109,7 @@ Route::group(['middleware' => ['auth']], function () {
Route::get('trash', [TrashController::class, 'index'])
->name('get-trash');
Route::get('trash/clear/{model}', [TrashController::class, 'clearTrash'])
Route::post('trash/clear', [TrashController::class, 'clearTrash'])
->name('clear-trash');
Route::post('trash/restore', [TrashController::class, 'restoreEntry'])
->name('trash-restore');

View File

@ -43,9 +43,11 @@ class TrashControllerTest extends TestCase
{
$this->setupTestData();
$response = $this->get('trash/clear/links');
$response = $this->post('trash/clear', [
'model' => 'links'
]);
$response->assertStatus(302);
$response->assertRedirect('trash');
$this->assertEquals(0, DB::table('links')->count());
}
@ -54,9 +56,11 @@ class TrashControllerTest extends TestCase
{
$this->setupTestData();
$response = $this->get('trash/clear/tags');
$response = $this->post('trash/clear', [
'model' => 'tags'
]);
$response->assertStatus(302);
$response->assertRedirect('trash');
$this->assertEquals(0, DB::table('tags')->count());
}
@ -65,9 +69,11 @@ class TrashControllerTest extends TestCase
{
$this->setupTestData();
$response = $this->get('trash/clear/lists');
$response = $this->post('trash/clear', [
'model' => 'lists'
]);
$response->assertStatus(302);
$response->assertRedirect('trash');
$this->assertEquals(0, DB::table('lists')->count());
}
@ -76,9 +82,11 @@ class TrashControllerTest extends TestCase
{
$this->setupTestData();
$response = $this->get('trash/clear/notes');
$response = $this->post('trash/clear', [
'model' => 'notes'
]);
$response->assertStatus(302);
$response->assertRedirect('trash');
$this->assertEquals(0, DB::table('notes')->count());
}