clrghouz/app/Console/Commands/MailList.php

79 lines
1.5 KiB
PHP

<?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;
}
}