summaryrefslogtreecommitdiff
path: root/src/Controllers/KeyController.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Controllers/KeyController.php')
-rw-r--r--src/Controllers/KeyController.php31
1 files changed, 12 insertions, 19 deletions
diff --git a/src/Controllers/KeyController.php b/src/Controllers/KeyController.php
index a8b4fb1..7777229 100644
--- a/src/Controllers/KeyController.php
+++ b/src/Controllers/KeyController.php
@@ -4,10 +4,11 @@ namespace App\Controllers;
use App\Errors\AppException;
use App\Errors\ErrorCode;
-use App\Errors\UnauthorizedError;
use App\Models\Tokens;
use App\Models\User;
use App\Support\RequestValidator;
+use Matrix\Responses\ClientKeysUploadPostResponse;
+use Matrix\Responses\ClientRefreshPostResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\JsonResponse;
@@ -29,22 +30,14 @@ class KeyController
*/
public function upload(Request $request): Response
{
- $accessToken = str_replace("Bearer ", "", $request->headers->get("authorization") ?: "");
- $user = User::fetchWithAccessToken($accessToken);
-
- if (empty($user)) {
- throw new UnauthorizedError();
- }
-
+ $user = User::authenticateWithRequest($request);
$body = json_decode($request->getContent(), true);
RequestValidator::validateJson();
- return new JsonResponse([
- "one_time_key_counts" => [
- "curve25519" => 0,
- "signed_curve25519" => count($body["one_time_keys"])
- ],
- ]);
+ return new JsonResponse(new ClientKeysUploadPostResponse([
+ "curve25519" => 0,
+ "signed_curve25519" => count($body["one_time_keys"]),
+ ]));
}
public function query(Request $request): Response
@@ -74,10 +67,10 @@ class KeyController
$newTokens = Tokens::new($tokens->getUserId(), $tokens->getDeviceId());
$newTokens->insert();
- return new JsonResponse([
- "access_token" => $newTokens->getAccessToken(),
- "expires_in" => $newTokens->getExpiresIn(),
- "refresh_token" => $newTokens->getRefreshToken(),
- ]);
+ return new JsonResponse(new ClientRefreshPostResponse(
+ accessToken: $newTokens->getAccessToken(),
+ expiresInMilliseconds: $newTokens->getExpiresIn(),
+ refreshToken: $newTokens->getRefreshToken(),
+ ));
}
}