summaryrefslogtreecommitdiff
path: root/src/Controllers/UserController.php
diff options
context:
space:
mode:
authorDaniel Weipert <git@mail.dweipert.de>2026-04-10 13:37:26 +0200
committerDaniel Weipert <git@mail.dweipert.de>2026-04-10 14:39:36 +0200
commit74a524ded12c6527745957ac219e1ca34828aa6c (patch)
tree8dee7358b036f4d9e0730b8d89cb801caf46dff3 /src/Controllers/UserController.php
parent6929089fea7cf79ae5ca9e05486ba33b0e5b216d (diff)
switch routing to attributes
Diffstat (limited to 'src/Controllers/UserController.php')
-rwxr-xr-xsrc/Controllers/UserController.php57
1 files changed, 0 insertions, 57 deletions
diff --git a/src/Controllers/UserController.php b/src/Controllers/UserController.php
deleted file mode 100755
index d102160..0000000
--- a/src/Controllers/UserController.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace App\Controllers;
-
-use App\Database;
-use App\Errors\UnauthorizedError;
-use App\Models\User;
-use App\Support\RequestValidator;
-use Symfony\Component\HttpFoundation\Request;
-use Symfony\Component\HttpFoundation\Response;
-use Symfony\Component\HttpFoundation\JsonResponse;
-
-class UserController
-{
- /**
- * POST /_matrix/client/r0/user/{userId}/filter
- * POST /_matrix/client/v3/user/{userId}/filter
- *
- * @see https://spec.matrix.org/v1.16/client-server-api/#post_matrixclientv3useruseridfilter
- */
- public function uploadFilter(Request $request): Response
- {
- $accessToken = str_replace("Bearer ", "", $request->headers->get("authorization") ?: "");
- $user = User::fetchWithAccessToken($accessToken);
-
- if (empty($user)) {
- throw new UnauthorizedError();
- }
-
- $userId = $request->get("userId");
- if ($user->getId() !== $userId) {
- throw new UnauthorizedError();
- }
-
- $body = json_decode($request->getContent(), true);
- RequestValidator::validateJson();
-
- $filterId = md5($userId . random_bytes(512));
-
- Database::getInstance()->query(<<<SQL
- insert into filters (id, account_data, event_fields, event_format, presence, room, user_id)
- values (:id, :account_data, :event_fields, :event_format, :presence, :room, :user_id)
- SQL, [
- "id" => $filterId,
- "account_data" => isset($body["account_data"]) ? json_encode($body["account_data"]) : null,
- "event_fields" => isset($body["event_fields"]) ? json_encode($body["event_fields"]) : null,
- "event_format" => isset($body["event_format"]) ? json_encode($body["event_format"]) : null,
- "presence" => isset($body["presence"]) ? json_encode($body["presence"]) : null,
- "room" => isset($body["room"]) ? json_encode($body["room"]) : null,
- "user_id" => $userId,
- ]);
-
- return new JsonResponse([
- "filter_id" => $filterId,
- ]);
- }
-}