diff options
| author | Daniel Weipert <git@mail.dweipert.de> | 2025-09-12 13:07:20 +0200 |
|---|---|---|
| committer | Daniel Weipert <git@mail.dweipert.de> | 2025-09-12 13:07:20 +0200 |
| commit | a20d44d64f02f86d23cba1f1a886352c5f744a1a (patch) | |
| tree | 98ab2ddf1c27ffe5e56af763750c19b45867cbab /src/Controllers/AccountController.php | |
| parent | b1b101fd98c8b4354a4e0c73e867d817466de30e (diff) | |
sending messages results in client acknowledging success
Diffstat (limited to 'src/Controllers/AccountController.php')
| -rwxr-xr-x | src/Controllers/AccountController.php | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/Controllers/AccountController.php b/src/Controllers/AccountController.php new file mode 100755 index 0000000..858a6b5 --- /dev/null +++ b/src/Controllers/AccountController.php @@ -0,0 +1,35 @@ +<?php + +namespace App\Controllers; + +use App\Errors\UnauthorizedError; +use App\Models\Device; +use App\Models\User; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; +use Symfony\Component\HttpFoundation\JsonResponse; + +class AccountController +{ + /** + * GET /_matrix/client/v3/account/whoami + * + * @see https://spec.matrix.org/v1.15/client-server-api/#get_matrixclientv3accountwhoami + */ + public function whoami(Request $request): Response + { + $accessToken = str_replace("Bearer ", "", $request->headers->get("authorization") ?: ""); + $user = User::fetchWithAccessToken($accessToken); + + if (empty($user)) { + throw new UnauthorizedError(); + } + + $device = Device::fetch(userId: $user->getId()); + + return new JsonResponse([ + "device_id" => $device->getId(), + "user_id" => $user->getId(), + ]); + } +} |
