aboutsummaryrefslogtreecommitdiffhomepage
path: root/Digitigrade/Timeline
diff options
context:
space:
mode:
Diffstat (limited to 'Digitigrade/Timeline')
-rw-r--r--Digitigrade/Timeline/HomeTimeline.php1
-rw-r--r--Digitigrade/Timeline/HomeTimelineItem.php52
2 files changed, 1 insertions, 52 deletions
diff --git a/Digitigrade/Timeline/HomeTimeline.php b/Digitigrade/Timeline/HomeTimeline.php
index c2baf3d..0867541 100644
--- a/Digitigrade/Timeline/HomeTimeline.php
+++ b/Digitigrade/Timeline/HomeTimeline.php
@@ -2,6 +2,7 @@
namespace Digitigrade\Timeline;
use Digitigrade\Model\UserAccount;
+use Digitigrade\Model\HomeTimelineItem;
class HomeTimeline extends Timeline {
private UserAccount $user;
diff --git a/Digitigrade/Timeline/HomeTimelineItem.php b/Digitigrade/Timeline/HomeTimelineItem.php
deleted file mode 100644
index cb2b6e4..0000000
--- a/Digitigrade/Timeline/HomeTimelineItem.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-namespace Digitigrade\Timeline;
-
-use Digitigrade\Model;
-use Digitigrade\Model\UserAccount;
-
-class HomeTimelineItem extends Model {
- public ?int $id;
- public UserAccount $userAccount;
- public ?string $reasonKind;
- public ?string $reasonData;
- public string $itemKind;
- public string $itemData;
- public \DateTimeImmutable $modified;
-
- /**
- * Creates a new home timeline entry for a particular user, but does not save it.
- */
- public static function fromTimelineItem(TimelineItem $item, UserAccount $user): self {
- $hti = new self();
- $hti->userAccount = $user;
- $reason = $item->getReason();
- if ($reason != null) {
- $hti->reasonKind = $reason::class;
- $hti->reasonData = json_encode($reason->toJsonReference());
- }
- $object = $item->getObject();
- $hti->itemKind = $object::class;
- $hti->itemData = json_encode($object->toJsonReference());
- $hti->modified = new \DateTimeImmutable();
- return $hti;
- }
-
- 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));
- return new TimelineItem($object, $reason);
- }
-
- public static function findAllForUser(UserAccount $user, ?int $limit = null, int $offset = 0, ?\DateTimeInterface $since = null) {
- $where = 'user_account = ?';
- $params = [$user->id];
- if (isset($since)) {
- $where .= ' AND modified > ?';
- $params[] = $since->format('c');
- }
- return self::findAllWhere($where, $params, $limit, $offset, 'id DESC');
- }
-} \ No newline at end of file