Add fallback to rest on websocket reconnect (#6624)

This commit is contained in:
Daniel Espino García
2022-09-07 11:55:31 +02:00
committed by GitHub
parent 5a9bba4919
commit 1597f86aa3

View File

@@ -45,7 +45,7 @@ import {getCurrentUser} from '@queries/servers/user';
import {dismissAllModals, popToRoot} from '@screens/navigation';
import NavigationStore from '@store/navigation_store';
import {isTablet} from '@utils/helpers';
import {logInfo} from '@utils/log';
import {logDebug, logInfo} from '@utils/log';
import {handleCategoryCreatedEvent, handleCategoryDeletedEvent, handleCategoryOrderUpdatedEvent, handleCategoryUpdatedEvent} from './category';
import {handleChannelConvertedEvent, handleChannelCreatedEvent,
@@ -127,9 +127,6 @@ async function doReconnectRest(serverUrl: string, operator: ServerDataOperator,
const currentChannel = await getCurrentChannel(database);
const currentActiveServerUrl = await getActiveServerUrl(DatabaseManager.appDatabase!.database);
if (serverUrl === currentActiveServerUrl) {
DeviceEventEmitter.emit(Events.FETCHING_POSTS, true);
}
const entryData = await entry(serverUrl, currentTeam?.id, currentChannel?.id, lastDisconnectedAt);
if ('error' in entryData) {
if (serverUrl === currentActiveServerUrl) {
@@ -199,8 +196,17 @@ async function doReconnect(serverUrl: string) {
license = system.license;
}
const currentActiveServerUrl = await getActiveServerUrl(DatabaseManager.appDatabase!.database);
if (serverUrl === currentActiveServerUrl) {
DeviceEventEmitter.emit(Events.FETCHING_POSTS, true);
}
if (config.FeatureFlagGraphQL === 'true') {
await graphQLCommon(serverUrl, true, system.currentTeamId, system.currentChannelId);
const {error} = await graphQLCommon(serverUrl, true, system.currentTeamId, system.currentChannelId);
if (error) {
logDebug('Error using GraphQL, trying REST', error);
await doReconnectRest(serverUrl, operator, system.currentTeamId, system.currentUserId, config, license, lastDisconnectedAt);
}
} else {
await doReconnectRest(serverUrl, operator, system.currentTeamId, system.currentUserId, config, license, lastDisconnectedAt);
}