Compare commits

...

3 Commits

Author SHA1 Message Date
11b7dc4229 Fix presenting PATH/SEENBY when point_id is null
All checks were successful
Create Docker Image / Build Docker Image (x86_64) (push) Successful in 36s
Create Docker Image / Build Docker Image (arm64) (push) Successful in 1m47s
Create Docker Image / Final Docker Image Manifest (push) Successful in 9s
2024-06-25 11:20:08 +10:00
8b4e2cb9f0 Add system_id when listing AKAs, so that we can reference the system relation. 2024-06-25 11:20:08 +10:00
7bd192980f Fix file sending, as a result of moving $size into Send::class when optimising mail sending 2024-06-25 11:20:08 +10:00
5 changed files with 33 additions and 14 deletions

View File

@ -551,7 +551,12 @@ class Message extends FTNBase
// FTS-0004.001/FSC-0068.001 The message PATH lines
// @todo This unique() function here shouldnt be required, but is while system generated messages are storing path/seenby
$path = $this->mo->path->push($this->us)->unique('ftn')->filter(fn($item)=>($item->point_id === 0));
$path = $this
->mo
->path
->push($this->us)
->unique('ftn')
->filter(fn($item)=>is_null($item->point_id) || ($item->point_id === 0));
// Create our rogue seenby objects
$seenby = $this->mo->seenby;
@ -565,7 +570,7 @@ class Message extends FTNBase
$seenby = $seenby
->push($this->us)
->filter(fn($item)=>($item->point_id === 0))
->filter(fn($item)=>is_null($item->point_id) || ($item->point_id === 0))
->unique('ftn')
->sortBy(function($item) { return sprintf('%05d%05d',$item->host_id,$item->node_id);});

View File

@ -41,7 +41,6 @@ final class File extends Send
return $this->f->datetime->timestamp;
case 'name':
case 'size':
return $this->f->{$key};
case 'type':
@ -84,6 +83,8 @@ final class File extends Send
*/
public function open(string $compress=''): bool
{
$this->size = $this->f->size;
// If sending file is a File::class, then our file is s3
if ($this->nameas && $this->f instanceof FileModel) {
$this->fd = Storage::readStream($this->f->rel_name);

View File

@ -46,9 +46,6 @@ final class Dynamic extends Send
case 'mtime':
return $this->sent->timestamp;
case 'size':
return strlen($this->buffer);
default:
return NULL;
}
@ -104,6 +101,7 @@ final class Dynamic extends Send
public function open(string $compress=''): bool
{
$this->buffer = (string)$this->item;
$this->size = strlen($this->buffer);
return TRUE;
}

View File

@ -43,9 +43,6 @@ final class Tic extends Send
case 'mtime':
return $this->f->datetime->timestamp;
case 'size':
return strlen($this->tic);
case 'type':
return ($this->ftype&0xff00)>>8;
@ -67,6 +64,8 @@ final class Tic extends Send
public function open(string $compress=''): bool
{
$this->size = strlen($this->tic);
return TRUE;
}

View File

@ -395,7 +395,8 @@ class Address extends Model
*/
public function scopeFTN($query)
{
return $query->select(['id','addresses.zone_id','host_id','node_id','point_id'])
return $query
->select(['id','addresses.zone_id','host_id','node_id','point_id','system_id'])
->with([
'zone:zones.id,domain_id,zone_id',
'zone.domain:domains.id,name',
@ -602,9 +603,13 @@ class Address extends Model
public function nodes_hub(): HasMany
{
return $this->hasMany(Address::class,'hub_id','id')
->FTN()
->select(['id','addresses.zone_id','host_id','node_id','point_id','system_id'])
->active()
->FTNorder();
->FTNorder()
->with([
'zone:zones.id,domain_id,zone_id',
'zone.domain:domains.id,name',
]);
}
/**
@ -1043,9 +1048,20 @@ class Address extends Model
*/
public function filesWaiting(): Collection
{
return $this->file_seen()
->whereNull('sent_at')
return File::select('files.*')
->join('file_seenby',['file_seenby.file_id'=>'files.id'])
->where('address_id',$this->id)
->whereNull('files.deleted_at')
->whereNotNull('export_at')
->whereNull('sent_at')
->orderby('id')
->with([
'filearea:id,name,domain_id',
'filearea.domain:id,name',
'fftn:id,zone_id,host_id,node_id,point_id',
'fftn.zone:id,domain_id,zone_id',
'fftn.zone.domain:id,name',
])
->get();
}