summaryrefslogtreecommitdiff
path: root/src/Controllers/RoomController.php
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2025-09-19 14:29:17 +0200
committerDaniel Weipert <git@mail.dweipert.de>2025-09-19 14:29:17 +0200
commit2ae0c2fa2a0bb5a7cd1fd9da1c6d2a6090126e67 (patch)
treef8cd230b33f36cbee57df276e52f1d393c296e13 /src/Controllers/RoomController.php
parenta20d44d64f02f86d23cba1f1a886352c5f744a1a (diff)
sending messages creates message event in database
Diffstat (limited to 'src/Controllers/RoomController.php')
-rwxr-xr-xsrc/Controllers/RoomController.php21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/Controllers/RoomController.php b/src/Controllers/RoomController.php
index 367d754..c02d5ce 100755
--- a/src/Controllers/RoomController.php
+++ b/src/Controllers/RoomController.php
@@ -6,10 +6,12 @@ use App\Database;
use App\Errors\AppException;
use App\Errors\ErrorCode;
use App\Errors\UnauthorizedError;
+use App\Events\RoomMessageEvent;
use App\Models\User;
use App\Support\Parser;
use App\Support\RequestValidator;
use App\Types\EventType;
+use App\Types\MembershipState;
use App\Types\MessageType;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
@@ -81,8 +83,25 @@ class RoomController
$message = $body["body"];
$messageType = MessageType::from($body["msgtype"]);
+ $eventId = "\$" . md5(random_bytes(512)) . ":" . $_ENV["DOMAIN"];
+ $event = new RoomMessageEvent(
+ id: $eventId,
+ sender: $user->getId(),
+ originServerTimestamp: new \DateTime("now"),
+ content: [
+ "body" => $message,
+ "msgtype" => $messageType->value,
+ ],
+ unsigned: [
+ "age" => 1234,
+ "membership" => MembershipState::JOIN->value,
+ ],
+ roomId: $roomId,
+ );
+ $event->insert();
+
return new JsonResponse([
- "event_id" => "\$asdfghjkl:" . $_ENV["DOMAIN"],
+ "event_id" => $eventId,
]);
}
}