From e692de7d7f187766c4c426decfcef877deecc23a Mon Sep 17 00:00:00 2001 From: Deon George Date: Fri, 7 Jun 2024 10:51:28 +1000 Subject: [PATCH] When limiting the number of messages in a packet, only retrieve that number from the DB --- app/Classes/FTN/Packet.php | 5 +++-- app/Console/Commands/MailList.php | 4 ++-- app/Models/Address.php | 13 +++++++------ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/Classes/FTN/Packet.php b/app/Classes/FTN/Packet.php index 925ccea..9f39039 100644 --- a/app/Classes/FTN/Packet.php +++ b/app/Classes/FTN/Packet.php @@ -3,6 +3,7 @@ namespace App\Classes\FTN; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Illuminate\Support\Facades\Log; @@ -404,9 +405,9 @@ abstract class Packet extends FTNBase implements \Iterator, \Countable return (string)$this; } - public function mail(Collection $msgs): self + public function mail(Builder $msgs): self { - $this->messages = $msgs; + $this->messages = $msgs->get(); return $this; } diff --git a/app/Console/Commands/MailList.php b/app/Console/Commands/MailList.php index db16976..8b3fa04 100644 --- a/app/Console/Commands/MailList.php +++ b/app/Console/Commands/MailList.php @@ -45,7 +45,7 @@ class MailList extends Command 'from' => 'FROM', 'to' => 'TO', 'subject' => 'SUBJECT', - ],$ao->netmailWaiting()->map(function($item) { + ],$ao->netmailWaiting()->get()->map(function($item) { return [ 'id'=>$item->id, 'msgid'=>$item->msgid, @@ -63,7 +63,7 @@ class MailList extends Command 'to' => 'TO', 'subject' => 'SUBJECT', 'area' => 'AREA', - ],$ao->echomailWaiting()->map(function($item) { + ],$ao->echomailWaiting()->get()->map(function($item) { return [ 'id'=>$item->id, 'msgid'=>$item->msgid, diff --git a/app/Models/Address.php b/app/Models/Address.php index d056e6c..87729bf 100644 --- a/app/Models/Address.php +++ b/app/Models/Address.php @@ -3,6 +3,7 @@ namespace App\Models; use Carbon\Carbon; +use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; @@ -967,9 +968,9 @@ class Address extends Model * Echomail waiting to be sent to this system * * @param int|null $max - * @return Collection + * @return Builder */ - public function echomailWaiting(int $max=NULL): Collection + public function echomailWaiting(int $max=NULL): Builder { $echomails = $this ->UncollectedEchomail() @@ -979,7 +980,7 @@ class Address extends Model ->groupBy(['echomails.id']) ->get(); - return Echomail::whereIn('id',$echomails->pluck('id'))->get(); + return Echomail::whereIn('id',$echomails->pluck('id')); } /** @@ -1161,10 +1162,10 @@ class Address extends Model /** * Netmail waiting to be sent to this system * - * @return Collection + * @return Builder * @throws \Exception */ - public function netmailWaiting(): Collection + public function netmailWaiting(): Builder { $netmails = $this ->UncollectedNetmail() @@ -1173,7 +1174,7 @@ class Address extends Model ->groupBy(['netmails.id']) ->get(); - return Netmail::whereIn('id',$netmails->pluck('id'))->get(); + return Netmail::whereIn('id',$netmails->pluck('id')); } /**