summaryrefslogtreecommitdiff
path: root/src/Controllers/RoomController.php
diff options
context:
space:
mode:
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,
]);
}
}