<?php namespace App\Console\Commands; use Illuminate\Console\Command; use Symfony\Component\HttpFoundation\File\File; use App\Classes\FTN\Packet; use App\Jobs\MessageProcess as Job; use App\Models\Zone; class PacketProcess extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'packet:process' .' {pkt : Packet to process}' .' {--N|nobot : Dont process bots}' .' {system? : Zone the packet is from}'; /** * The console command description. * * @var string */ protected $description = 'Process Packet'; /** * Execute the console command. * * @return mixed * @throws \App\Classes\FTN\InvalidPacketException */ public function handle() { $f = new File($this->argument('pkt')); $s = $this->argument('system') ? Zone::where('name',$this->argument('system'))->singleOrFail() : NULL; foreach (Packet::open($f,$s) as $msg) { // @todo Quick check that the packet should be processed by us. // @todo validate that the packet's zone is in the domain. $this->info(sprintf('Processing message from [%s] with msgid [%s]',$msg->fboss,$msg->msgid)); // Dispatch job. Job::dispatchSync($msg,$this->option('nobot')); } } }