Fetch joinedAtVersion before change log fetch for new groups

This commit is contained in:
Fedor Indutny 2022-01-26 16:02:23 -08:00 committed by GitHub
parent 2603d53891
commit 437ef2d3a7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 21 additions and 44 deletions

View file

@ -2946,11 +2946,6 @@ async function getGroupUpdates({
group,
serverPublicParamsBase64,
newRevision,
// If we just linked and this is a group where we have been a member
// from the beggining - applying all changes since the start is the best
// case scenario.
fallbackRevision: 0,
});
return result;
@ -2973,36 +2968,6 @@ async function getGroupUpdates({
throw error;
}
}
// Fetch of logs starting from the revision 0 failed, so we probably were
// just invited to the group. Try fetching logs from the same revision as in
// this message.
if (isFirstFetch) {
try {
const result = await updateGroupViaLogs({
group,
serverPublicParamsBase64,
newRevision,
fallbackRevision: newRevision,
});
return result;
} catch (error) {
if (error.code === TEMPORAL_AUTH_REJECTED_CODE) {
// We will fail over to the updateGroupViaState call below
log.info(
`getGroupUpdates/${logId}: Temporal credential failure, now fetching full state`
);
} else if (error.code === GROUP_ACCESS_DENIED_CODE) {
// We will fail over to the updateGroupViaState call below
log.info(
`getGroupUpdates/${logId}: Log access denied, now fetching full state`
);
} else {
throw error;
}
}
}
}
if (window.GV2_ENABLE_STATE_PROCESSING) {
@ -3120,11 +3085,9 @@ async function updateGroupViaSingleChange({
async function updateGroupViaLogs({
group,
serverPublicParamsBase64,
fallbackRevision,
newRevision,
}: {
group: ConversationAttributesType;
fallbackRevision: number;
newRevision: number;
serverPublicParamsBase64: string;
}): Promise<UpdatesResultType> {
@ -3137,7 +3100,6 @@ async function updateGroupViaLogs({
const groupCredentials = getCredentialsForToday(data);
const deltaOptions = {
group,
fallbackRevision,
newRevision,
serverPublicParamsBase64,
authCredentialBase64: groupCredentials.today.credential,
@ -3261,13 +3223,11 @@ function getGroupCredentials({
async function getGroupDelta({
group,
newRevision,
fallbackRevision,
serverPublicParamsBase64,
authCredentialBase64,
}: {
group: ConversationAttributesType;
newRevision: number;
fallbackRevision: number;
serverPublicParamsBase64: string;
authCredentialBase64: string;
}): Promise<UpdatesResultType> {
@ -3292,7 +3252,7 @@ async function getGroupDelta({
const currentRevision = group.revision;
let revisionToFetch = isNumber(currentRevision)
? currentRevision + 1
: fallbackRevision;
: undefined;
let response;
const changes: Array<Proto.IGroupChanges> = [];