Page MenuHomePhorge

D8190.1767084114.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D8190.1767084114.diff

diff --git a/keyserver/src/endpoints.js b/keyserver/src/endpoints.js
--- a/keyserver/src/endpoints.js
+++ b/keyserver/src/endpoints.js
@@ -76,6 +76,7 @@
updateUserAvatarResponder,
} from './responders/user-responders.js';
import { codeVerificationResponder } from './responders/verification-responders.js';
+import { versionResponder } from './responders/version-responders.js';
import {
uploadMediaMetadataResponder,
uploadDeletionResponder,
@@ -310,6 +311,10 @@
responder: getOlmSessionInitializationDataResponder,
requiredPolicies: [],
},
+ version: {
+ responder: versionResponder,
+ requiredPolicies: [],
+ },
};
export { jsonEndpoints };
diff --git a/keyserver/src/responders/version-responders.js b/keyserver/src/responders/version-responders.js
new file mode 100644
--- /dev/null
+++ b/keyserver/src/responders/version-responders.js
@@ -0,0 +1,25 @@
+// @flow
+
+import t, { type TInterface } from 'tcomb';
+
+import { webAndKeyserverCodeVersion } from 'lib/facts/version.js';
+import type { VersionResponse } from 'lib/types/device-types.js';
+import { tShape } from 'lib/utils/validation-utils.js';
+
+import type { Viewer } from '../session/viewer.js';
+import { validateOutput } from '../utils/validation-utils.js';
+
+const versionResponseValidator: TInterface<VersionResponse> =
+ tShape<VersionResponse>({ codeVersion: t.Number });
+
+const versionResponse = { codeVersion: webAndKeyserverCodeVersion };
+
+async function versionResponder(viewer: Viewer): Promise<VersionResponse> {
+ return validateOutput(
+ viewer.platformDetails,
+ versionResponseValidator,
+ versionResponse,
+ );
+}
+
+export { versionResponder };
diff --git a/lib/types/device-types.js b/lib/types/device-types.js
--- a/lib/types/device-types.js
+++ b/lib/types/device-types.js
@@ -40,3 +40,7 @@
+codeVersion?: number,
+stateVersion?: number,
};
+
+export type VersionResponse = {
+ +codeVersion: number,
+};
diff --git a/lib/types/endpoints.js b/lib/types/endpoints.js
--- a/lib/types/endpoints.js
+++ b/lib/types/endpoints.js
@@ -95,6 +95,7 @@
UPLOAD_MEDIA_METADATA: 'upload_media_metadata',
SEARCH_MESSAGES: 'search_messages',
GET_OLM_SESSION_INITIALIZATION_DATA: 'get_olm_session_initialization_data',
+ VERSION: 'version',
});
type SocketPreferredEndpoint = $Values<typeof socketPreferredEndpoints>;

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 30, 8:41 AM (2 h, 7 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5866762
Default Alt Text
D8190.1767084114.diff (2 KB)

Event Timeline