summaryrefslogtreecommitdiff
path: root/matrix-specification/Requests/ClientKeysUploadPostRequest.php
diff options
context:
space:
mode:
Diffstat (limited to 'matrix-specification/Requests/ClientKeysUploadPostRequest.php')
-rw-r--r--matrix-specification/Requests/ClientKeysUploadPostRequest.php29
1 files changed, 29 insertions, 0 deletions
diff --git a/matrix-specification/Requests/ClientKeysUploadPostRequest.php b/matrix-specification/Requests/ClientKeysUploadPostRequest.php
new file mode 100644
index 0000000..40d9eae
--- /dev/null
+++ b/matrix-specification/Requests/ClientKeysUploadPostRequest.php
@@ -0,0 +1,29 @@
+<?php
+
+namespace Matrix\Requests;
+
+use Matrix\Data\DeviceKeys;
+use Matrix\Data\KeyObject;
+
+class ClientKeysUploadPostRequest implements RateLimited, RequiresAuthentication, \JsonSerializable
+{
+ /**
+ * @param array<string, string|KeyObject> $fallbackKeys
+ * @param array<string, string|KeyObject> $oneTimeKeys
+ */
+ public function __construct(
+ private ?DeviceKeys $deviceKeys = null,
+ private ?array $fallbackKeys = null,
+ private ?array $oneTimeKeys = null,
+ )
+ {}
+
+ public function jsonSerialize(): array
+ {
+ return array_filter([
+ "device_keys" => $this->deviceKeys,
+ "fallback_keys" => $this->fallbackKeys,
+ "one_time_keys" => $this->oneTimeKeys,
+ ], "is_null");
+ }
+}