From 04a23ab47464625e1dc8f52aedbdf9ffaf073be1 Mon Sep 17 00:00:00 2001 From: Philippe Weidmann Date: Wed, 10 May 2023 15:57:46 +0200 Subject: [PATCH] feat: Delete locally in case of send MailApiError --- MailCore/Cache/MailboxManager.swift | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/MailCore/Cache/MailboxManager.swift b/MailCore/Cache/MailboxManager.swift index 20b0037c8..fceb43359 100644 --- a/MailCore/Cache/MailboxManager.swift +++ b/MailCore/Cache/MailboxManager.swift @@ -1010,12 +1010,13 @@ public class MailboxManager: ObservableObject { // Once the draft has been sent, we can delete it from Realm try await deleteLocally(draft: draft) return cancelableResponse - } catch { + } catch let error as AFErrorWithContext where (200 ... 299).contains(error.request.response?.statusCode ?? 0) { // Status code is valid but something went wrong eg. we couldn't parse the response - if let statusCode = (error as? AFErrorWithContext)?.request.response?.statusCode, - (200 ... 299).contains(statusCode) { - try await deleteLocally(draft: draft) - } + try await deleteLocally(draft: draft) + throw error + } catch let error as MailApiError { + // The api returned an error + try await deleteLocally(draft: draft) throw error } }