<?php namespace App\Console\Commands; use Illuminate\Console\Command; use App\Models\Address; class MailList extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = 'mail:list {ftn : FTN address}'; /** * The console command description. * * @var string */ protected $description = 'List mail waiting for a node'; /** * Execute the console command. * * @return int * @throws \Exception */ public function handle(): int { $ao = Address::findFTN($this->argument('ftn'),TRUE); if (! $ao) { $this->error(sprintf('%s not found?',$this->argument('ftn'))); return self::FAILURE; } $this->info('Netmail'); $this->table([ 'id' => 'ID', 'msgid' => 'MSGID', 'from' => 'FROM', 'to' => 'TO', 'subject' => 'SUBJECT', ],$ao->netmailWaiting()->get()->map(function($item) { return [ 'id'=>$item->id, 'msgid'=>$item->msgid, 'from'=>sprintf('%s (%s)',$item->from,$item->fftn->ftn3d), 'to'=>sprintf('%s (%s)',$item->to,$item->tftn->ftn3d), 'subject'=>$item->subject, ]; })); $this->info('Echomail'); $this->table([ 'id' => 'ID', 'msgid' => 'MSGID', 'from' => 'FROM', 'to' => 'TO', 'subject' => 'SUBJECT', 'area' => 'AREA', ],$ao->echomailWaiting()->get()->map(function($item) { return [ 'id'=>$item->id, 'msgid'=>$item->msgid, 'from'=>$item->from, 'to'=>$item->to, 'subject'=>$item->subject, 'area'=>$item->echoarea->name, ]; })); return self::SUCCESS; } }