Page MenuHomePhabricator

D8949.id.diff
No OneTemporary

D8949.id.diff

diff --git a/keyserver/src/socket/session-utils.js b/keyserver/src/socket/session-utils.js
--- a/keyserver/src/socket/session-utils.js
+++ b/keyserver/src/socket/session-utils.js
@@ -401,25 +401,19 @@
return { checkStateRequest };
}
- const { invalidKeys } = status;
+ const invalidKeys = new Set(status.invalidKeys);
- let fetchAllThreads = false,
- fetchAllEntries = false,
- fetchAllUserInfos = false,
- fetchUserInfo = false;
+ const shouldFetchAll = Object.fromEntries(
+ values(serverStateSyncSpecs).map(spec => [
+ spec.hashKey,
+ invalidKeys.has(spec.hashKey),
+ ]),
+ );
const threadIDsToFetch = new Set(),
entryIDsToFetch = new Set(),
userIDsToFetch = new Set();
for (const key of invalidKeys) {
- if (key === 'threadInfos') {
- fetchAllThreads = true;
- } else if (key === 'entryInfos') {
- fetchAllEntries = true;
- } else if (key === 'userInfos') {
- fetchAllUserInfos = true;
- } else if (key === 'currentUserInfo') {
- fetchUserInfo = true;
- } else if (key.startsWith('threadInfo|')) {
+ if (key.startsWith('threadInfo|')) {
const [, threadID] = key.split('|');
threadIDsToFetch.add(threadID);
} else if (key.startsWith('entryInfo|')) {
@@ -432,7 +426,7 @@
}
const fetchPromises = {};
- if (fetchAllThreads) {
+ if (shouldFetchAll[serverStateSyncSpecs.threads.hashKey]) {
fetchPromises.threadInfos = serverStateSyncSpecs.threads.fetch(
viewer,
query,
@@ -444,7 +438,7 @@
threadIDsToFetch,
);
}
- if (fetchAllEntries) {
+ if (shouldFetchAll[serverStateSyncSpecs.entries.hashKey]) {
fetchPromises.entryInfos = serverStateSyncSpecs.entries.fetch(
viewer,
query,
@@ -456,7 +450,7 @@
entryIDsToFetch,
);
}
- if (fetchAllUserInfos) {
+ if (shouldFetchAll[serverStateSyncSpecs.users.hashKey]) {
fetchPromises.userInfos = serverStateSyncSpecs.users.fetch(viewer, query);
} else if (userIDsToFetch.size > 0) {
fetchPromises.userInfos = serverStateSyncSpecs.users.fetch(
@@ -465,7 +459,7 @@
userIDsToFetch,
);
}
- if (fetchUserInfo) {
+ if (shouldFetchAll[serverStateSyncSpecs.currentUser.hashKey]) {
fetchPromises.currentUserInfo = serverStateSyncSpecs.currentUser.fetch(
viewer,
query,

File Metadata

Mime Type
text/plain
Expires
Mon, Dec 23, 10:44 PM (18 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2696959
Default Alt Text
D8949.id.diff (2 KB)

Event Timeline