summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2022-05-13 17:22:46 +0200
committerAndrej Mihajlov <and@mullvad.net>2022-05-17 15:23:43 +0200
commit10b11bb22f66c303bca1b213705fff96170823a1 (patch)
treed1f95e3188092130be613ad68255665bdab96d95
parent849de5585a6c6c6e371729987a84a51602a91c21 (diff)
downloadmullvadvpn-10b11bb22f66c303bca1b213705fff96170823a1.tar.xz
mullvadvpn-10b11bb22f66c303bca1b213705fff96170823a1.zip
Wire up new REST error
-rw-r--r--ios/MullvadVPN/AppStorePaymentManager/SendAppStoreReceiptOperation.swift2
-rw-r--r--ios/MullvadVPN/DisplayChainedError.swift12
-rw-r--r--ios/MullvadVPN/LoginViewController.swift12
-rw-r--r--ios/MullvadVPN/TunnelManager/SetAccountOperation.swift3
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelManager.swift3
-rw-r--r--ios/MullvadVPN/WireguardKeysViewController.swift3
6 files changed, 19 insertions, 16 deletions
diff --git a/ios/MullvadVPN/AppStorePaymentManager/SendAppStoreReceiptOperation.swift b/ios/MullvadVPN/AppStorePaymentManager/SendAppStoreReceiptOperation.swift
index 3bcfa7c4f3..befd7da698 100644
--- a/ios/MullvadVPN/AppStorePaymentManager/SendAppStoreReceiptOperation.swift
+++ b/ios/MullvadVPN/AppStorePaymentManager/SendAppStoreReceiptOperation.swift
@@ -65,7 +65,7 @@ class SendAppStoreReceiptOperation: ResultOperation<REST.CreateApplePaymentRespo
private func sendReceipt(_ receiptData: Data) {
submitReceiptTask = apiProxy.createApplePayment(
- token: self.accountToken,
+ accountNumber: self.accountToken,
receiptString: receiptData,
retryStrategy: .noRetry) { result in
switch result {
diff --git a/ios/MullvadVPN/DisplayChainedError.swift b/ios/MullvadVPN/DisplayChainedError.swift
index d1474f4864..aa7ec26b2d 100644
--- a/ios/MullvadVPN/DisplayChainedError.swift
+++ b/ios/MullvadVPN/DisplayChainedError.swift
@@ -184,7 +184,9 @@ extension TunnelManager.Error: DisplayChainedError {
reason
)
- if case .server(.keyLimitReached) = restError {
+ if case .unhandledResponse(_, let serverErrorResponse) = restError,
+ serverErrorResponse?.code == .keyLimitReached
+ {
// TODO: maybe use `restError.recoverySuggestion` instead?
message.append("\n\n")
message.append(NSLocalizedString(
@@ -209,7 +211,9 @@ extension TunnelManager.Error: DisplayChainedError {
reason
)
- if case .server(.keyLimitReached) = restError {
+ if case .unhandledResponse(_, let serverErrorResponse) = restError,
+ serverErrorResponse?.code == .keyLimitReached
+ {
// TODO: maybe use `restError.recoverySuggestion` instead?
message.append("\n\n")
message.append(NSLocalizedString(
@@ -336,7 +340,9 @@ extension AppStorePaymentManager.Error: DisplayChainedError {
case .validateAccount(let restError):
let reason = restError.errorChainDescription ?? ""
- if case .server(.invalidAccount) = restError {
+ if case .unhandledResponse(_, let serverErrorResponse) = restError,
+ serverErrorResponse?.code == .invalidAccount
+ {
return String(
format: NSLocalizedString(
"INVALID_ACCOUNT_ERROR",
diff --git a/ios/MullvadVPN/LoginViewController.swift b/ios/MullvadVPN/LoginViewController.swift
index fa63d40ed7..f345798941 100644
--- a/ios/MullvadVPN/LoginViewController.swift
+++ b/ios/MullvadVPN/LoginViewController.swift
@@ -364,20 +364,14 @@ private extension LoginState {
urlError.localizedDescription
)
- case .server(let serverError):
- var message = serverError.errorDescription ?? NSLocalizedString(
+ case .unhandledResponse(_, let serverError):
+ return serverError?.detail ?? NSLocalizedString(
"SUBHEAD_TITLE_UNKNOWN_SERVER_ERROR",
tableName: "Login",
comment: "Subhead displayed in the event of unknown server error."
)
- if let recoverySuggestion = serverError.recoverySuggestion {
- message.append("\n\(recoverySuggestion)")
- }
-
- return message
-
- case .encodePayload, .decodeErrorResponse, .decodeSuccessResponse:
+ case .createURLRequest, .decodeResponse:
return localizedUnknownInternalError
}
} else {
diff --git a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
index 6952a4130e..a38a23bb6c 100644
--- a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
+++ b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift
@@ -158,7 +158,8 @@ class SetAccountOperation: ResultOperation<(), TunnelManager.Error> {
case .success:
self.logger.info("Removed key (\(index)) from server.")
- case .failure(.server(.pubKeyNotFound)):
+ case .failure(.unhandledResponse(_, let serverErrorResponse))
+ where serverErrorResponse?.code == .publicKeyNotFound:
self.logger.debug("Key (\(index)) was not found on server.")
case .failure(let error):
diff --git a/ios/MullvadVPN/TunnelManager/TunnelManager.swift b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
index 76f7c0945b..755e92306c 100644
--- a/ios/MullvadVPN/TunnelManager/TunnelManager.swift
+++ b/ios/MullvadVPN/TunnelManager/TunnelManager.swift
@@ -845,7 +845,8 @@ extension TunnelManager {
// Do not retry if logged out.
return nil
- case .replaceWireguardKey(.server(.invalidAccount)):
+ case .replaceWireguardKey(.unhandledResponse(_, let serverErrorResponse))
+ where serverErrorResponse?.code == .invalidAccount:
// Do not retry if account was removed.
return nil
diff --git a/ios/MullvadVPN/WireguardKeysViewController.swift b/ios/MullvadVPN/WireguardKeysViewController.swift
index d53739edae..f3fad9cbc6 100644
--- a/ios/MullvadVPN/WireguardKeysViewController.swift
+++ b/ios/MullvadVPN/WireguardKeysViewController.swift
@@ -227,7 +227,8 @@ class WireguardKeysViewController: UIViewController, TunnelObserver {
self.updateViewState(.verifiedKey(true))
case .failure(let error):
- if case .server(.pubKeyNotFound) = error {
+ if case .unhandledResponse(_, let serverErrorResponse) = error,
+ serverErrorResponse?.code == .publicKeyNotFound {
self.updateViewState(.verifiedKey(false))
} else {
self.showKeyVerificationFailureAlert(error)