From bd11271621bd3759cfd194ed0119c0dc28155fd0 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Thu, 5 Mar 2026 14:57:28 +0100 Subject: update --- src/Models/RoomEvent.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/Models/RoomEvent.php (limited to 'src/Models/RoomEvent.php') diff --git a/src/Models/RoomEvent.php b/src/Models/RoomEvent.php new file mode 100644 index 0000000..96dc204 --- /dev/null +++ b/src/Models/RoomEvent.php @@ -0,0 +1,64 @@ + $row + */ + public static function transformEvent(array $row): ClientEvent + { + return new ClientEvent( + content: json_decode($row["content"], true), + eventId: $row["id"], + originServerTimestamp: new \DateTime($row["origin_server_timestamp"])->getTimestamp(), + roomId: $row["room_id"], + sender: $row["sender"], + type: EventType::from($row["type"]), + unsigned: json_decode($row["unsigned"], true), + ); + } + + public function insert(): bool + { + if ($this->event instanceof StateEvent) { + return !! Database::getInstance()->query(<< $this->event->getId(), + "content" => json_encode($this->event->getContent()), + "type" => $this->event->getType()->value, + "sender" => $this->event->getSender(), + "origin_server_timestamp" => \DateTime::createFromTimestamp($this->event->getOriginServerTimestamp())->format("U.v"), + "room_id" => $this->event->getRoomId(), + "unsigned" => json_encode($this->event->getUnsigned()), + "state_key" => $this->event->getStateKey(), + ]); + } + + return !! Database::getInstance()->query(<< $this->event->getId(), + "content" => json_encode($this->event->getContent()), + "type" => $this->event->getType()->value, + "sender" => $this->event->getSender(), + "origin_server_timestamp" => \DateTime::createFromTimestamp($this->event->getOriginServerTimestamp())->format("U.v"), + "room_id" => $this->event->getRoomId(), + "unsigned" => json_encode($this->event->getUnsigned()), + ]); + } +} -- cgit v1.2.3