Feat: Upload Controller and Prune Commands Extraction from 3dealer
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Core\File\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use Modules\Core\File\Services\FileService;
|
||||
|
||||
/**
|
||||
* Generic wrapper around FileService::pruneUnowned() — see that method's
|
||||
* own docblock for what "unowned" means and why the grace period exists.
|
||||
* Any caller (3dealer's product custom-field photo uploads today, some
|
||||
* other future upload feature tomorrow, in this app or another consuming
|
||||
* app) schedules this once per purpose string it stores files under; this
|
||||
* command itself has no opinion about what any given purpose means.
|
||||
*/
|
||||
class PruneUnownedFilesCommand extends Command
|
||||
{
|
||||
protected $signature = 'boboko:file:prune-unowned {purpose} {--hours=24 : Only delete unowned files older than this}';
|
||||
|
||||
protected $description = 'Delete unowned files of a given purpose past their grace period';
|
||||
|
||||
public function handle(FileService $files): int
|
||||
{
|
||||
$purpose = $this->argument('purpose');
|
||||
|
||||
$deleted = $files->pruneUnowned($purpose, now()->subHours((int) $this->option('hours')));
|
||||
|
||||
$this->info("Deleted {$deleted} unowned file(s) of purpose \"{$purpose}\".");
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user