diff --git a/keyserver/src/responders/thread-responders.js b/keyserver/src/responders/thread-responders.js --- a/keyserver/src/responders/thread-responders.js +++ b/keyserver/src/responders/thread-responders.js @@ -25,7 +25,6 @@ type ThreadFetchMediaRequest, type ToggleMessagePinRequest, type ToggleMessagePinResult, - rawThreadInfoValidator, } from 'lib/types/thread-types.js'; import { serverUpdateInfoValidator } from 'lib/types/update-types.js'; import { userInfosValidator } from 'lib/types/user-types.js'; @@ -102,8 +101,6 @@ export const changeThreadSettingsResultValidator: TInterface = tShape({ newMessageInfos: t.list(rawMessageInfoValidator), - threadInfo: t.maybe(rawThreadInfoValidator), - threadInfos: t.maybe(t.dict(tID, rawThreadInfoValidator)), updatesResult: tShape({ newUpdates: t.list(serverUpdateInfoValidator), }), diff --git a/keyserver/src/updaters/thread-permission-updaters.js b/keyserver/src/updaters/thread-permission-updaters.js --- a/keyserver/src/updaters/thread-permission-updaters.js +++ b/keyserver/src/updaters/thread-permission-updaters.js @@ -36,7 +36,6 @@ import { fetchServerThreadInfos, rawThreadInfosFromServerThreadInfos, - type FetchThreadInfosResult, } from '../fetchers/thread-fetchers.js'; import { rescindPushNotifs } from '../push/rescind.js'; import { createScriptViewer } from '../session/scripts.js'; @@ -975,7 +974,6 @@ // only needs to be specified if a JOIN_THREAD update will be generated for the // viewer, in which case it's necessary for knowing the set of entries to fetch. type ChangesetCommitResult = { - ...FetchThreadInfosResult, ...CreateUpdatesResult, }; async function commitMembershipChangeset( @@ -1054,10 +1052,9 @@ rescindPushNotifsForMemberDeletion(toRescindPushNotifs), ]); - // We fetch all threads here because old clients still expect the full list of - // threads on most thread operations. Once verifyClientSupported gates on - // codeVersion 62, we can add a WHERE clause on changedThreadIDs here - const serverThreadInfoFetchResult = await fetchServerThreadInfos(); + const serverThreadInfoFetchResult = await fetchServerThreadInfos( + SQL`t.id IN (${[...changedThreadIDs]})`, + ); const { threadInfos: serverThreadInfos } = serverThreadInfoFetchResult; const time = Date.now(); @@ -1117,7 +1114,6 @@ }); return { - ...threadInfoFetchResult, userInfos, viewerUpdates, }; diff --git a/keyserver/src/updaters/thread-updaters.js b/keyserver/src/updaters/thread-updaters.js --- a/keyserver/src/updaters/thread-updaters.js +++ b/keyserver/src/updaters/thread-updaters.js @@ -10,7 +10,6 @@ getThreadTypeParentRequirement, validChatNameRegex, } from 'lib/shared/thread-utils.js'; -import { hasMinCodeVersion } from 'lib/shared/version-utils.js'; import type { Shape } from 'lib/types/core.js'; import { messageTypes } from 'lib/types/message-types-enum.js'; import { threadPermissions } from 'lib/types/thread-permission-types.js'; @@ -138,10 +137,7 @@ } const changeset = await changeRole(request.threadID, memberIDs, request.role); - const { threadInfos, viewerUpdates } = await commitMembershipChangeset( - viewer, - changeset, - ); + const { viewerUpdates } = await commitMembershipChangeset(viewer, changeset); const messageData = { type: messageTypes.CHANGE_ROLE, @@ -153,18 +149,7 @@ }; const newMessageInfos = await createMessages(viewer, [messageData]); - if (hasMinCodeVersion(viewer.platformDetails, { native: 62 })) { - return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; - } - - return { - threadInfo: threadInfos[request.threadID], - threadInfos, - updatesResult: { - newUpdates: viewerUpdates, - }, - newMessageInfos, - }; + return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; } async function removeMembers( @@ -224,10 +209,7 @@ } const changeset = await changeRole(request.threadID, actualMemberIDs, 0); - const { threadInfos, viewerUpdates } = await commitMembershipChangeset( - viewer, - changeset, - ); + const { viewerUpdates } = await commitMembershipChangeset(viewer, changeset); const newMessageInfos = await (async () => { if (actualMemberIDs.length === 0) { @@ -243,18 +225,7 @@ return await createMessages(viewer, [messageData]); })(); - if (hasMinCodeVersion(viewer.platformDetails, { native: 62 })) { - return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; - } - - return { - threadInfo: threadInfos[request.threadID], - threadInfos, - updatesResult: { - newUpdates: viewerUpdates, - }, - newMessageInfos, - }; + return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; } async function leaveThread( @@ -752,18 +723,14 @@ } const changeset = { membershipRows, relationshipChangeset }; - const { threadInfos, viewerUpdates } = await commitMembershipChangeset( - viewer, - changeset, - { - // This forces an update for this thread, - // regardless of whether any membership rows are changed - changedThreadIDs: - Object.keys(sqlUpdate).length > 0 - ? new Set([request.threadID]) - : new Set(), - }, - ); + const { viewerUpdates } = await commitMembershipChangeset(viewer, changeset, { + // This forces an update for this thread, + // regardless of whether any membership rows are changed + changedThreadIDs: + Object.keys(sqlUpdate).length > 0 + ? new Set([request.threadID]) + : new Set(), + }); let newMessageInfos = []; if (!silenceMessages) { @@ -792,18 +759,7 @@ newMessageInfos = await createMessages(viewer, messageDatas); } - if (hasMinCodeVersion(viewer.platformDetails, { native: 62 })) { - return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; - } - - return { - threadInfo: threadInfos[request.threadID], - threadInfos, - updatesResult: { - newUpdates: viewerUpdates, - }, - newMessageInfos, - }; + return { updatesResult: { newUpdates: viewerUpdates }, newMessageInfos }; } async function joinThread( diff --git a/lib/types/thread-types.js b/lib/types/thread-types.js --- a/lib/types/thread-types.js +++ b/lib/types/thread-types.js @@ -282,8 +282,6 @@ }; export type ChangeThreadSettingsResult = { - +threadInfo?: RawThreadInfo, - +threadInfos?: { +[id: string]: RawThreadInfo }, +updatesResult: { +newUpdates: $ReadOnlyArray, },