45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace BookStack\Http\Controllers\Api;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use BookStack\Actions\ActivityType;
							 | 
						||
| 
								 | 
							
								use BookStack\Entities\Models\Deletion;
							 | 
						||
| 
								 | 
							
								use BookStack\Entities\Repos\DeletionRepo;
							 | 
						||
| 
								 | 
							
								use BookStack\Entities\Tools\TrashCan;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class RecycleBinApiController extends ApiController
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    public function __construct()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->middleware(function ($request, $next) {
							 | 
						||
| 
								 | 
							
								            $this->checkPermission('settings-manage');
							 | 
						||
| 
								 | 
							
								            $this->checkPermission('restrictions-manage-all');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            return $next($request);
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function list()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return $this->apiListingResponse(Deletion::query(), [
							 | 
						||
| 
								 | 
							
								            'id', 
							 | 
						||
| 
								 | 
							
								            'deleted_by', 
							 | 
						||
| 
								 | 
							
								            'created_at',
							 | 
						||
| 
								 | 
							
								            'updated_at',
							 | 
						||
| 
								 | 
							
								            'deletable_type',
							 | 
						||
| 
								 | 
							
								            'deletable_id'
							 | 
						||
| 
								 | 
							
								        ]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function restore(DeletionRepo $deletionRepo, string $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $restoreCount = $deletionRepo->restore((int) $id);
							 | 
						||
| 
								 | 
							
								        return response()->json(['restore_count' => $restoreCount]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    public function destroy(DeletionRepo $deletionRepo, string $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $deleteCount = $deletionRepo->destroy((int) $id);
							 | 
						||
| 
								 | 
							
								        return response()->json(['delete_count' => $deleteCount]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |