From 13999840c56e12e708432ee560ee83fe7c9ff361 Mon Sep 17 00:00:00 2001 From: winter Date: Sun, 16 Feb 2025 22:18:57 +0000 Subject: fix a freaky bug with note deletion and home timeline --- Digitigrade/Model/HomeTimelineItem.php | 6 +++++- Digitigrade/Model/Interaction.php | 2 +- Digitigrade/Model/Note.php | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) (limited to 'Digitigrade/Model') diff --git a/Digitigrade/Model/HomeTimelineItem.php b/Digitigrade/Model/HomeTimelineItem.php index 7e2c062..249ba91 100644 --- a/Digitigrade/Model/HomeTimelineItem.php +++ b/Digitigrade/Model/HomeTimelineItem.php @@ -32,12 +32,16 @@ class HomeTimelineItem extends Model { return $hti; } - public function toTimelineItem(): TimelineItem { + public function toTimelineItem(): ?TimelineItem { $reason = null; if (isset($this->reasonKind)) { $reason = $this->reasonKind::fromJsonReference(json_decode($this->reasonData)); } $object = $this->itemKind::fromJsonReference(json_decode($this->itemData)); + if (!isset($object)) { + $this->remove(); // it's invalid anyway it shouldn't be here + return null; + } return new TimelineItem($object, $reason); } diff --git a/Digitigrade/Model/Interaction.php b/Digitigrade/Model/Interaction.php index e651f45..43d02a2 100644 --- a/Digitigrade/Model/Interaction.php +++ b/Digitigrade/Model/Interaction.php @@ -113,7 +113,7 @@ class Interaction extends PushableModel implements Notifyable { return $this->id; } - public static function fromJsonReference(mixed $reference): self { + public static function fromJsonReference(mixed $reference): ?self { return self::find($reference); } diff --git a/Digitigrade/Model/Note.php b/Digitigrade/Model/Note.php index ac9cc3c..94b8b60 100644 --- a/Digitigrade/Model/Note.php +++ b/Digitigrade/Model/Note.php @@ -316,7 +316,7 @@ class Note extends PushableModel implements TimelineIncludeable, Notifyable { return $this->id; } - public static function fromJsonReference(mixed $reference): self { + public static function fromJsonReference(mixed $reference): ?self { return self::find($reference); } -- cgit v1.3