Compare commits
2 Commits
03bfc9dbfc
...
b6639c7bfc
Author | SHA1 | Date | |
---|---|---|---|
b6639c7bfc | |||
7e0178d183 |
@ -13,7 +13,8 @@ use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\Notification;
|
||||
|
||||
use App\Models\{Address,Domain,Echoarea};
|
||||
use App\Classes\FTN\Message;
|
||||
use App\Models\{Address,Domain};
|
||||
use App\Notifications\Echomails\AbsentNodes;
|
||||
use App\Notifications\Emails\NodeMarkedDown as NodeMarkedDownEmail;
|
||||
use App\Notifications\Netmails\NodeMarkedDown as NodeMarkedDownNetmail;
|
||||
@ -57,8 +58,34 @@ class AddressIdle implements ShouldQueue
|
||||
Log::info(sprintf('%s:- Delisting [%s], not seen for [%d] days',self::LOGKEY,$ao->ftn,config('fido.idle.delist')));
|
||||
$contact = FALSE;
|
||||
|
||||
// @todo Subscribe from echoareas/fileareas
|
||||
// Remove echomail not collected from echomail_seenby
|
||||
DB::table('echomail_seenby')
|
||||
->where('address_id',$ao->id)
|
||||
->whereNotNull('export_at')
|
||||
->whereNull('sent_at')
|
||||
->delete();
|
||||
|
||||
// Remove FLAG_INTRANSIT from netmail that hasnt been delivered
|
||||
DB::table('netmails')
|
||||
->where('tftn_id',$ao->id)
|
||||
->whereRaw(sprintf('(flags & %d) > 0',Message::FLAG_INTRANSIT))
|
||||
->update(['flags'=>DB::raw(sprintf('(flags & ~%d)',Message::FLAG_INTRANSIT))]);
|
||||
|
||||
// Remove files not collected
|
||||
DB::table('file_seenby')
|
||||
->where('address_id',$ao->id)
|
||||
->whereNotNull('export_at')
|
||||
->whereNull('sent_at')
|
||||
->delete();
|
||||
|
||||
// Remove subscribed echoareas
|
||||
$ao->echoareas()->detach();
|
||||
|
||||
// Remove subscribed fileareas
|
||||
$ao->fileareas()->detach();
|
||||
|
||||
$ao->active = FALSE;
|
||||
$ao->validated = FALSE;
|
||||
$ao->save();
|
||||
|
||||
// Email Alert
|
||||
@ -68,10 +95,8 @@ class AddressIdle implements ShouldQueue
|
||||
}
|
||||
|
||||
// Netmail Alert (to othernet network address)
|
||||
// Uncommon addresses
|
||||
$uncommon = $ao->system->addresses->map(fn($item)=>$item->parent())->diff(our_address())->first();
|
||||
if ($uncommon) {
|
||||
Notification::route('netmail',$uncommon->withoutRelations())->notify(new NodeDelistedNetmail($ao->withoutRelations()));
|
||||
if ($ao->system->uncommon()->count()) {
|
||||
Notification::route('netmail',$ao->system->uncommon()->first()->withoutRelations())->notify(new NodeDelistedNetmail($ao->withoutRelations()));
|
||||
$contact = TRUE;
|
||||
}
|
||||
|
||||
@ -91,10 +116,8 @@ class AddressIdle implements ShouldQueue
|
||||
}
|
||||
|
||||
// Netmail Alert (to othernet network address)
|
||||
// Uncommon addresses
|
||||
$uncommon = $ao->system->addresses->map(fn($item)=>$item->parent())->diff(our_address())->first();
|
||||
if ($uncommon) {
|
||||
Notification::route('netmail',$uncommon->withoutRelations())->notify(new NodeMarkedDownNetmail($ao->withoutRelations()));
|
||||
if ($ao->system->uncommon()->count()) {
|
||||
Notification::route('netmail',$ao->system->uncommon()->first()->withoutRelations())->notify(new NodeMarkedDownNetmail($ao->withoutRelations()));
|
||||
$contact = TRUE;
|
||||
}
|
||||
|
||||
@ -124,10 +147,8 @@ class AddressIdle implements ShouldQueue
|
||||
}
|
||||
|
||||
// Netmail Alert (to othernet network address)
|
||||
// Uncommon addresses
|
||||
$uncommon = $ao->system->addresses->map(fn($item)=>$item->parent())->diff(our_address())->first();
|
||||
if ($uncommon) {
|
||||
Notification::route('netmail',$uncommon->withoutRelations())->notify(new NodeMarkedHoldNetmail($ao->withoutRelations()));
|
||||
if ($ao->system->uncommon()->count()) {
|
||||
Notification::route('netmail',$ao->system->uncommon()->first()->withoutRelations())->notify(new NodeMarkedHoldNetmail($ao->withoutRelations()));
|
||||
$contact = TRUE;
|
||||
}
|
||||
|
||||
|
@ -275,4 +275,17 @@ class System extends Model
|
||||
return $this->akas->pluck('id')->search($item->command->address->id) !== FALSE; })
|
||||
->last();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return other addresses that are no collected here, but are on the same network as us.
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Collection
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function uncommon(): Collection
|
||||
{
|
||||
$our = our_address();
|
||||
|
||||
return $this->akas->filter(fn($item)=>($item->parent() && (! $our->contains($item->parent()))));
|
||||
}
|
||||
}
|
@ -7,6 +7,7 @@ use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Models\Address;
|
||||
|
||||
@ -14,6 +15,8 @@ class NodeDelisted extends Notification //implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
private const LOGKEY = 'NED';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
*/
|
||||
@ -36,6 +39,8 @@ class NodeDelisted extends Notification //implements ShouldQueue
|
||||
*/
|
||||
public function toMail(object $notifiable): MailMessage
|
||||
{
|
||||
Log::info(sprintf('%s:+ Sending a NODE DELISTED EMAIL for address [%s]',self::LOGKEY,$this->ao->ftn));
|
||||
|
||||
$now = Carbon::now();
|
||||
|
||||
return (new MailMessage)
|
||||
|
@ -7,6 +7,7 @@ use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Models\Address;
|
||||
|
||||
@ -14,6 +15,8 @@ class NodeMarkedDown extends Notification //implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
private const LOGKEY = 'NEM';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
*/
|
||||
@ -36,6 +39,8 @@ class NodeMarkedDown extends Notification //implements ShouldQueue
|
||||
*/
|
||||
public function toMail(object $notifiable): MailMessage
|
||||
{
|
||||
Log::info(sprintf('%s:+ Sending a NODE MARKED DOWN EMAIL for address [%s]',self::LOGKEY,$this->ao->ftn));
|
||||
|
||||
$now = Carbon::now();
|
||||
|
||||
return (new MailMessage)
|
||||
|
@ -7,6 +7,7 @@ use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Models\Address;
|
||||
|
||||
@ -14,6 +15,8 @@ class NodeMarkedHold extends Notification //implements ShouldQueue
|
||||
{
|
||||
use Queueable;
|
||||
|
||||
private const LOGKEY = 'NEH';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
*/
|
||||
@ -36,6 +39,8 @@ class NodeMarkedHold extends Notification //implements ShouldQueue
|
||||
*/
|
||||
public function toMail(object $notifiable): MailMessage
|
||||
{
|
||||
Log::info(sprintf('%s:+ Sending a NODE MARKED HOLD EMAIL for address [%s]',self::LOGKEY,$this->ao->ftn));
|
||||
|
||||
$now = Carbon::now();
|
||||
|
||||
return (new MailMessage)
|
||||
|
@ -4,7 +4,6 @@ namespace App\Notifications\Netmails;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Classes\FTN\Message;
|
||||
@ -16,7 +15,7 @@ class NodeDelisted extends Netmails //implements ShouldQueue
|
||||
{
|
||||
use Queueable,PageTemplate;
|
||||
|
||||
private const LOGKEY = 'NMD';
|
||||
private const LOGKEY = 'NND';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
|
@ -4,7 +4,6 @@ namespace App\Notifications\Netmails;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Classes\FTN\Message;
|
||||
@ -16,7 +15,7 @@ class NodeMarkedDown extends Netmails //implements ShouldQueue
|
||||
{
|
||||
use Queueable,PageTemplate;
|
||||
|
||||
private const LOGKEY = 'NMD';
|
||||
private const LOGKEY = 'NNM';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
@ -36,7 +35,7 @@ class NodeMarkedDown extends Netmails //implements ShouldQueue
|
||||
$o = $this->setupNetmail($notifiable);
|
||||
$ao = $notifiable->routeNotificationFor(static::via);
|
||||
|
||||
Log::info(sprintf('%s:+ Sending a NODE MARKED DOWN for address [%s]',self::LOGKEY,$ao->ftn));
|
||||
Log::info(sprintf('%s:+ Sending a NODE MARKED DOWN NETMAIL for address [%s]',self::LOGKEY,$ao->ftn));
|
||||
|
||||
$o->subject = sprintf('ACTION REQUIRED: Your system will be delisted on %s',$now->format('Y-m-d'));
|
||||
$o->flags = (Message::FLAG_LOCAL|Message::FLAG_PRIVATE|Message::FLAG_CRASH);
|
||||
|
@ -4,7 +4,6 @@ namespace App\Notifications\Netmails;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
use App\Classes\FTN\Message;
|
||||
@ -16,7 +15,7 @@ class NodeMarkedHold extends Netmails //implements ShouldQueue
|
||||
{
|
||||
use Queueable,PageTemplate;
|
||||
|
||||
private const LOGKEY = 'NMD';
|
||||
private const LOGKEY = 'NNH';
|
||||
|
||||
/**
|
||||
* Create a new notification instance.
|
||||
|
@ -169,9 +169,6 @@ trait MessageAttributes
|
||||
{
|
||||
Log::debug(sprintf('%s:+ Bundling [%s] for [%s]',self::LOGKEY,$this->id,$ao->ftn),['type'=>get_class($this)]);
|
||||
|
||||
// For netmails, our tftn is the next hop
|
||||
$this->tftn = $ao;
|
||||
|
||||
// @todo Dont bundle mail to nodes that have been disabled, or addresses that have been deleted
|
||||
return Message::packMessage($this);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user