51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace BookStack\Console\Commands; | ||
|  | 
 | ||
|  | use BookStack\PageRevision; | ||
|  | use Illuminate\Console\Command; | ||
|  | 
 | ||
|  | class ClearRevisions extends Command | ||
|  | { | ||
|  |     /** | ||
|  |      * The name and signature of the console command. | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     protected $signature = 'bookstack:clear-revisions | ||
|  |                             {--a|all : Include active update drafts in deletion} | ||
|  |                             '; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * The console command description. | ||
|  |      * | ||
|  |      * @var string | ||
|  |      */ | ||
|  |     protected $description = 'Clear page revisions'; | ||
|  | 
 | ||
|  |     protected $pageRevision; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Create a new command instance. | ||
|  |      * | ||
|  |      * @param PageRevision $pageRevision | ||
|  |      */ | ||
|  |     public function __construct(PageRevision $pageRevision) | ||
|  |     { | ||
|  |         $this->pageRevision = $pageRevision; | ||
|  |         parent::__construct(); | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Execute the console command. | ||
|  |      * | ||
|  |      * @return mixed | ||
|  |      */ | ||
|  |     public function handle() | ||
|  |     { | ||
|  |         $deleteTypes = $this->option('all') ? ['version', 'update_draft'] : ['version']; | ||
|  |         $this->pageRevision->newQuery()->whereIn('type', $deleteTypes)->delete(); | ||
|  |         $this->comment('Revisions deleted'); | ||
|  |     } | ||
|  | } |