aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Model
diff options
context:
space:
mode:
authorwinter2025-02-16 22:18:57 +0000
committerwinter2025-02-16 22:18:57 +0000
commit13999840c56e12e708432ee560ee83fe7c9ff361 (patch)
tree30f0c159697a9b30ec0a60bd240a49c3fbc43ca0 /Digitigrade/Model
parent00fc10a04f90e761edf2b1ddca04f0ec6bb030b5 (diff)
fix a freaky bug with note deletion and home timeline
Diffstat (limited to 'Digitigrade/Model')
-rw-r--r--Digitigrade/Model/HomeTimelineItem.php6
-rw-r--r--Digitigrade/Model/Interaction.php2
-rw-r--r--Digitigrade/Model/Note.php2
3 files changed, 7 insertions, 3 deletions
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);
}