clrghouz/app/Console/Commands/MailList.php

73 lines
1.3 KiB
PHP
Raw Normal View History

2023-09-16 12:12:19 +00:00
<?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()
{
$ao = Address::findFTN($this->argument('ftn'));
$this->info('Netmail');
$this->table([
'id' => 'ID',
'msgid' => 'MSGID',
'from' => 'FROM',
'to' => 'TO',
'subject' => 'SUBJECT',
],$ao->netmailWaiting()->map(function($item) {
return [
'id'=>$item->id,
'msgid'=>$item->msgid,
'from'=>$item->from,
'to'=>$item->to,
'subject'=>$item->subject,
];
}));
$this->info('Echomail');
$this->table([
'id' => 'ID',
'msgid' => 'MSGID',
'from' => 'FROM',
'to' => 'TO',
'subject' => 'SUBJECT',
'area' => 'AREA',
],$ao->echomailWaiting()->map(function($item) {
return [
'id'=>$item->id,
'msgid'=>$item->msgid,
'from'=>$item->from,
'to'=>$item->to,
'subject'=>$item->subject,
'area'=>$item->echoarea->name,
];
}));
return Command::SUCCESS;
}
}