<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Illuminate\Foundation\Bus\DispatchesJobs; use App\Jobs\{PhotoMove,VideoMove}; class CatalogMove extends Command { use DispatchesJobs; /** * The name and signature of the console command. * * @var string */ protected $signature = 'catalog:move {type : Photo | Video }'; /** * The console command description. * * @var string */ protected $description = 'Trigger Moves'; /** * Execute the console command. * * @return mixed */ public function handle() { $class = 'App\Models\\'.$this->argument('type'); if (! class_exists($class)) abort(500,sprintf('No class [%s]',$this->argument('type'))); foreach ($class::where('filename','LIKE','%INCOMING%')->get() as $o) { // Catch any files that are already there. if ($o->moveable() === 1) { $o->duplicate = TRUE; $o->save(); continue; } $x = NULL; if (! $o->scanned OR $o->duplicate OR $o->remove OR ($x=$o->moveable()) !== TRUE) { $this->warn(sprintf('Ignoring (%s)[%s]... [%s]',$o->id,$o->file_path(),$x)); continue; } switch (strtolower($this->argument('type'))) { case 'photo': $this->dispatch((new PhotoMove($o))->onQueue('move')); break; case 'video': $this->dispatch((new VideoMove($o))->onQueue('move')); break; default: $this->error('Dont know how to handle: ',$this->argument('type')); } } } }