]> BookStack Code Mirror - bookstack/blob - app/Http/Controllers/Api/RecycleBinApiController.php
Start recycle bin API endpoints: list, restore, delete
[bookstack] / app / Http / Controllers / Api / RecycleBinApiController.php
1 <?php
2
3 namespace BookStack\Http\Controllers\Api;
4
5 use BookStack\Actions\ActivityType;
6 use BookStack\Entities\Models\Deletion;
7 use BookStack\Entities\Repos\DeletionRepo;
8 use BookStack\Entities\Tools\TrashCan;
9
10 class RecycleBinApiController extends ApiController
11 {
12     public function __construct()
13     {
14         $this->middleware(function ($request, $next) {
15             $this->checkPermission('settings-manage');
16             $this->checkPermission('restrictions-manage-all');
17
18             return $next($request);
19         });
20     }
21
22     public function list()
23     {
24         return $this->apiListingResponse(Deletion::query(), [
25             'id', 
26             'deleted_by', 
27             'created_at',
28             'updated_at',
29             'deletable_type',
30             'deletable_id'
31         ]);
32     }
33
34     public function restore(DeletionRepo $deletionRepo, string $id)
35     {
36         $restoreCount = $deletionRepo->restore((int) $id);
37         return response()->json(['restore_count' => $restoreCount]);
38     }
39
40     public function destroy(DeletionRepo $deletionRepo, string $id)
41     {
42         $deleteCount = $deletionRepo->destroy((int) $id);
43         return response()->json(['delete_count' => $deleteCount]);
44     }
45 }