diff options
| -rw-r--r-- | ios/MullvadVPN/DisplayChainedError.swift | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/ios/MullvadVPN/DisplayChainedError.swift b/ios/MullvadVPN/DisplayChainedError.swift index ff6bd69528..cae6437af2 100644 --- a/ios/MullvadVPN/DisplayChainedError.swift +++ b/ios/MullvadVPN/DisplayChainedError.swift @@ -12,6 +12,30 @@ protocol DisplayChainedError { var errorChainDescription: String? { get } } +extension RestError: DisplayChainedError { + var errorChainDescription: String? { + switch self { + case .network(let urlError): + return urlError.localizedDescription + case .server(let serverError): + if let knownErrorDescription = serverError.errorDescription { + return knownErrorDescription + } else { + return String( + format: NSLocalizedString("Server error: %@", comment: ""), + serverError.error ?? "(empty)" + ) + } + case .encodePayload: + return NSLocalizedString("Server request encoding error", comment: "") + case .decodeSuccessResponse: + return NSLocalizedString("Server success response decoding error", comment: "") + case .decodeErrorResponse: + return NSLocalizedString("Server error response decoding error", comment: "") + } + } +} + extension MullvadRpc.Error: DisplayChainedError { var errorChainDescription: String? { switch self { @@ -114,8 +138,8 @@ extension Account.Error: DisplayChainedError { var errorChainDescription: String? { switch self { - case .createAccount(let rpcError), .verifyAccount(let rpcError): - return rpcError.errorChainDescription + case .createAccount(let restError), .verifyAccount(let restError): + return restError.errorChainDescription case .tunnelConfiguration(let tunnelError): return tunnelError.errorChainDescription |
