Page MenuHomePhabricator

D12364.id41187.diff
No OneTemporary

D12364.id41187.diff

diff --git a/keyserver/src/endpoints.js b/keyserver/src/endpoints.js
--- a/keyserver/src/endpoints.js
+++ b/keyserver/src/endpoints.js
@@ -7,6 +7,7 @@
import type { PolicyType } from 'lib/facts/policies.js';
import type { Endpoint } from 'lib/types/endpoints.js';
import { calendarQueryValidator } from 'lib/types/entry-types.js';
+import { sessionStateValidator } from 'lib/types/session-types.js';
import { endpointValidators } from 'lib/types/validators/endpoint-validators.js';
import { updateUserAvatarRequestValidator } from 'lib/utils/avatar-utils.js';
@@ -121,6 +122,7 @@
roleDeletionRequestInputValidator,
roleModificationRequestInputValidator,
} from './responders/thread-responders.js';
+import { fetchPendingUpdatesResponder } from './responders/update-responders.js';
import {
keyserverAuthRequestInputValidator,
keyserverAuthResponder,
@@ -289,6 +291,11 @@
inputValidator: fetchMessageInfosRequestInputValidator,
policies: baseLegalPolicies,
},
+ fetch_pending_updates: {
+ responder: fetchPendingUpdatesResponder,
+ inputValidator: sessionStateValidator,
+ policies: baseLegalPolicies,
+ },
fetch_pinned_messages: {
responder: fetchPinnedMessagesResponder,
inputValidator: fetchPinnedMessagesResponderInputValidator,
diff --git a/keyserver/src/responders/update-responders.js b/keyserver/src/responders/update-responders.js
new file mode 100644
--- /dev/null
+++ b/keyserver/src/responders/update-responders.js
@@ -0,0 +1,16 @@
+// @flow
+
+import type { SessionState } from 'lib/types/session-types.js';
+import type { ServerStateSyncSocketPayload } from 'lib/types/socket-types.js';
+
+import { Viewer } from '../session/viewer.js';
+import { fetchDataForSocketInit } from '../socket/fetch-data.js';
+
+function fetchPendingUpdatesResponder(
+ viewer: Viewer,
+ request: SessionState,
+): Promise<ServerStateSyncSocketPayload> {
+ return fetchDataForSocketInit(viewer, request);
+}
+
+export { fetchPendingUpdatesResponder };
diff --git a/lib/types/endpoints.js b/lib/types/endpoints.js
--- a/lib/types/endpoints.js
+++ b/lib/types/endpoints.js
@@ -39,15 +39,16 @@
});
type UploadEndpoint = $Values<typeof uploadEndpoints>;
-const intialReduxStateEndpoints = Object.freeze({
+const largeDataFetchEndpoints = Object.freeze({
GET_INITIAL_REDUX_STATE: 'get_initial_redux_state',
+ FETCH_PENDING_UPDATES: 'fetch_pending_updates',
});
-type InitialReduxStateEndpoint = $Values<typeof intialReduxStateEndpoints>;
+type LargeDataFetchEndpoint = $Values<typeof largeDataFetchEndpoints>;
type HTTPOnlyEndpoint =
| SessionChangingEndpoint
| UploadEndpoint
- | InitialReduxStateEndpoint;
+ | LargeDataFetchEndpoint;
const socketOnlyEndpoints = Object.freeze({
UPDATE_ACTIVITY: 'update_activity',
diff --git a/lib/types/socket-types.js b/lib/types/socket-types.js
--- a/lib/types/socket-types.js
+++ b/lib/types/socket-types.js
@@ -294,10 +294,11 @@
export type ServerStateSyncSocketPayload =
| ServerStateSyncFullSocketPayload
| ServerStateSyncIncrementalSocketPayload;
-const serverStateSyncSocketPayloadValidator = t.union([
- serverStateSyncFullSocketPayloadValidator,
- serverStateSyncIncrementalSocketPayloadValidator,
-]);
+export const serverStateSyncSocketPayloadValidator: TUnion<ServerStateSyncSocketPayload> =
+ t.union([
+ serverStateSyncFullSocketPayloadValidator,
+ serverStateSyncIncrementalSocketPayloadValidator,
+ ]);
export type ServerStateSyncServerSocketMessage = {
+type: 0,
diff --git a/lib/types/validators/endpoint-validators.js b/lib/types/validators/endpoint-validators.js
--- a/lib/types/validators/endpoint-validators.js
+++ b/lib/types/validators/endpoint-validators.js
@@ -62,6 +62,7 @@
import { inviteLinkValidator } from '../link-types.js';
import { uploadMultimediaResultValidator } from '../media-types.js';
import { getOlmSessionInitializationDataResponseValidator } from '../request-types.js';
+import { serverStateSyncSocketPayloadValidator } from '../socket-types.js';
const sessionChangingEndpoints = Object.freeze({
log_out: {
@@ -93,10 +94,13 @@
},
});
-const initialReduxStateEndpoints = Object.freeze({
+const largeDataFetchEndpoints = Object.freeze({
get_initial_redux_state: {
validator: initialReduxStateValidator,
},
+ fetch_pending_updates: {
+ validator: serverStateSyncSocketPayloadValidator,
+ },
});
const socketOnlyEndpoints = Object.freeze({
@@ -179,7 +183,7 @@
export const endpointValidators = Object.freeze({
...sessionChangingEndpoints,
...uploadEndpoints,
- ...initialReduxStateEndpoints,
+ ...largeDataFetchEndpoints,
...socketOnlyEndpoints,
...socketPreferredEndpoints,
...httpPreferredEndpoints,

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 5, 11:53 PM (21 h, 37 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2246954
Default Alt Text
D12364.id41187.diff (4 KB)

Event Timeline