From 4c64997607486c04c74eed609e41c5a6585901bf Mon Sep 17 00:00:00 2001 From: William Grant Date: Wed, 26 Apr 2023 14:46:55 +1000 Subject: [PATCH] fix: log but continue if there are errors while clearing out sogs inboxes --- ts/components/dialog/DeleteAccountModal.tsx | 10 +++++++++- .../apis/open_group_api/sogsv3/sogsV3ClearInbox.ts | 14 +++++++------- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/ts/components/dialog/DeleteAccountModal.tsx b/ts/components/dialog/DeleteAccountModal.tsx index 22145485b..f8ef34401 100644 --- a/ts/components/dialog/DeleteAccountModal.tsx +++ b/ts/components/dialog/DeleteAccountModal.tsx @@ -65,7 +65,15 @@ async function deleteEverythingAndNetworkData() { // clear each inbox per sogs for (const roomInfo of allRoomInfos.values()) { // TODO CONTINUE testing - use a dummy account with some message requests and then if we restore from seed there should be no message requests. - await clearInbox(roomInfo); + try { + const success = await clearInbox(roomInfo); + if (!success) { + throw Error(`Failed to clear inbox for ${roomInfo.conversationId}`); + } + } catch (error) { + window.log.info(`DeleteAccount =>`, error); + continue; + } } } diff --git a/ts/session/apis/open_group_api/sogsv3/sogsV3ClearInbox.ts b/ts/session/apis/open_group_api/sogsv3/sogsV3ClearInbox.ts index 14f46ecab..f88be9bc3 100644 --- a/ts/session/apis/open_group_api/sogsv3/sogsV3ClearInbox.ts +++ b/ts/session/apis/open_group_api/sogsv3/sogsV3ClearInbox.ts @@ -16,8 +16,8 @@ type OpenGroupClearInboxResponse = { export const clearInbox = async (roomInfos: OpenGroupRequestCommonType): Promise => { let success = false; - const converationId = getOpenGroupV2ConversationId(roomInfos.serverUrl, roomInfos.roomId); - const conversation = await Data.getConversationById(converationId); + const conversationId = getOpenGroupV2ConversationId(roomInfos.serverUrl, roomInfos.roomId); + const conversation = await Data.getConversationById(conversationId); if (!conversation) { window.log.warn('clearInbox Matching conversation not found in db'); @@ -40,27 +40,27 @@ export const clearInbox = async (roomInfos: OpenGroupRequestCommonType): Promise ); if (!result) { - throw new Error('Could not clearInbox, res is invalid'); + throw new Error(`Could not clearInbox, res is invalid for ${conversationId}`); } const rawMessage = (result.body && (result.body[0].body as OpenGroupClearInboxResponse)) || null; if (!rawMessage) { - throw new Error('clearInbox parsing failed'); + throw new Error(`clearInbox parsing failed for ${conversationId}`); } try { if (batchGlobalIsSuccess(result) && batchFirstSubIsSuccess(result)) { success = true; - window.log.info(`clearInbox ${rawMessage.deleted} messages deleted from ${converationId} `); + window.log.info(`clearInbox ${rawMessage.deleted} messages deleted for ${conversationId} `); } } catch (e) { - window?.log?.error("clearInbox Can't decode JSON body"); + window?.log?.error(`clearInbox Can't decode JSON body for ${conversationId}`); } } if (!success) { - window.log.info(`clearInbox message deletion failed for ${converationId} `); + window.log.info(`clearInbox message deletion failed for ${conversationId}`); } return success; };