diff options
| author | Jon Petersson <jon.petersson@kvadrat.se> | 2023-11-20 11:48:06 +0100 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2023-11-22 16:36:29 +0100 |
| commit | d1e60b89bf2c01c81b7d8968af7c8e111f793fc7 (patch) | |
| tree | 3fd8cbdf2ee886309a2bc11e7da22d4ed440c8f0 | |
| parent | 7df5031fc75b09c1bd648f6024881b9b6acce1ba (diff) | |
| download | mullvadvpn-d1e60b89bf2c01c81b7d8968af7c8e111f793fc7.tar.xz mullvadvpn-d1e60b89bf2c01c81b7d8968af7c8e111f793fc7.zip | |
Stop using old completion based MullvadREST interface
| -rw-r--r-- | ios/MullvadREST/RESTAPIProxy.swift | 52 | ||||
| -rw-r--r-- | ios/MullvadREST/RESTAccountsProxy.swift | 34 | ||||
| -rw-r--r-- | ios/MullvadREST/RESTAuthenticationProxy.swift | 8 | ||||
| -rw-r--r-- | ios/MullvadREST/RESTDevicesProxy.swift | 40 | ||||
| -rw-r--r-- | ios/MullvadREST/RESTProxy.swift | 17 | ||||
| -rw-r--r-- | ios/MullvadVPN/StorePaymentManager/SendStoreReceiptOperation.swift | 5 | ||||
| -rw-r--r-- | ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift | 5 | ||||
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/SetAccountOperation.swift | 33 | ||||
| -rw-r--r-- | ios/MullvadVPN/TunnelManager/UpdateAccountDataOperation.swift | 3 | ||||
| -rw-r--r-- | ios/MullvadVPNTests/APIProxy+Stubs.swift | 9 | ||||
| -rw-r--r-- | ios/MullvadVPNTests/AccountsProxy+Stubs.swift | 8 |
11 files changed, 70 insertions, 144 deletions
diff --git a/ios/MullvadREST/RESTAPIProxy.swift b/ios/MullvadREST/RESTAPIProxy.swift index 8594297410..24d02d36e7 100644 --- a/ios/MullvadREST/RESTAPIProxy.swift +++ b/ios/MullvadREST/RESTAPIProxy.swift @@ -27,13 +27,6 @@ public protocol APIQuerying { receiptString: Data ) -> any RESTRequestExecutor<REST.CreateApplePaymentResponse> - func createApplePayment( - accountNumber: String, - receiptString: Data, - retryStrategy: REST.RetryStrategy, - completionHandler: @escaping ProxyCompletionHandler<REST.CreateApplePaymentResponse> - ) -> Cancellable - func sendProblemReport( _ body: REST.ProblemReportRequest, retryStrategy: REST.RetryStrategy, @@ -79,13 +72,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "get-api-addrs", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completionHandler + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completionHandler) } public func getRelays( @@ -136,13 +129,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "get-relays", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completionHandler + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completionHandler) } public func createApplePayment( @@ -202,19 +195,6 @@ extension REST { ) } - @available(*, deprecated, message: "Use createApplePayment(accountNumber:, receiptString:) instead") - public func createApplePayment( - accountNumber: String, - receiptString: Data, - retryStrategy: REST.RetryStrategy, - completionHandler: @escaping ProxyCompletionHandler<CreateApplePaymentResponse> - ) -> Cancellable { - return createApplePayment(accountNumber: accountNumber, receiptString: receiptString).execute( - retryStrategy: retryStrategy, - completionHandler: completionHandler - ) - } - public func sendProblemReport( _ body: ProblemReportRequest, retryStrategy: REST.RetryStrategy, @@ -246,13 +226,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "send-problem-report", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completionHandler + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completionHandler) } public func submitVoucher( @@ -290,13 +270,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "submit-voucher", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completionHandler + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completionHandler) } } diff --git a/ios/MullvadREST/RESTAccountsProxy.swift b/ios/MullvadREST/RESTAccountsProxy.swift index fad967aac7..4088a2abb4 100644 --- a/ios/MullvadREST/RESTAccountsProxy.swift +++ b/ios/MullvadREST/RESTAccountsProxy.swift @@ -17,12 +17,6 @@ public protocol RESTAccountHandling { func getAccountData(accountNumber: String) -> any RESTRequestExecutor<Account> - func getAccountData( - accountNumber: String, - retryStrategy: REST.RetryStrategy, - completion: @escaping ProxyCompletionHandler<Account> - ) -> Cancellable - func deleteAccount( accountNumber: String, retryStrategy: REST.RetryStrategy, @@ -61,13 +55,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "create-account", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } public func getAccountData(accountNumber: String) -> any RESTRequestExecutor<Account> { @@ -98,18 +92,6 @@ extension REST { ) } - @available(*, deprecated, message: "Use getAccountData(accountNumber:) instead") - public func getAccountData( - accountNumber: String, - retryStrategy: REST.RetryStrategy, - completion: @escaping ProxyCompletionHandler<Account> - ) -> Cancellable { - return getAccountData(accountNumber: accountNumber).execute( - retryStrategy: retryStrategy, - completionHandler: completion - ) - } - public func deleteAccount( accountNumber: String, retryStrategy: RetryStrategy, @@ -143,13 +125,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "delete-my-account", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } } diff --git a/ios/MullvadREST/RESTAuthenticationProxy.swift b/ios/MullvadREST/RESTAuthenticationProxy.swift index 0b5cabe8cb..cbcd6fdc07 100644 --- a/ios/MullvadREST/RESTAuthenticationProxy.swift +++ b/ios/MullvadREST/RESTAuthenticationProxy.swift @@ -47,13 +47,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "get-access-token", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } } diff --git a/ios/MullvadREST/RESTDevicesProxy.swift b/ios/MullvadREST/RESTDevicesProxy.swift index 7047f3acd4..dd49179c30 100644 --- a/ios/MullvadREST/RESTDevicesProxy.swift +++ b/ios/MullvadREST/RESTDevicesProxy.swift @@ -110,13 +110,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "get-device", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } /// Fetch a list of created devices. @@ -145,13 +145,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "get-devices", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } /// Create new device. @@ -184,13 +184,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "create-device", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } /// Delete device by identifier. @@ -247,13 +247,13 @@ extension REST { } } - return addOperation( + let executor = makeRequestExecutor( name: "delete-device", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } /// Rotate device key @@ -300,13 +300,13 @@ extension REST { with: responseDecoder ) - return addOperation( + let executor = makeRequestExecutor( name: "rotate-device-key", - retryStrategy: retryStrategy, requestHandler: requestHandler, - responseHandler: responseHandler, - completionHandler: completion + responseHandler: responseHandler ) + + return executor.execute(retryStrategy: retryStrategy, completionHandler: completion) } } diff --git a/ios/MullvadREST/RESTProxy.swift b/ios/MullvadREST/RESTProxy.swift index 3ca5c9630e..49d4fc8968 100644 --- a/ios/MullvadREST/RESTProxy.swift +++ b/ios/MullvadREST/RESTProxy.swift @@ -43,23 +43,6 @@ extension REST { self.responseDecoder = responseDecoder } - @available(*, deprecated, message: "Use makeRequestExecutor() instead") - func addOperation<Success>( - name: String, - retryStrategy: REST.RetryStrategy, - requestHandler: RESTRequestHandler, - responseHandler: some RESTResponseHandler<Success>, - completionHandler: @escaping ProxyCompletionHandler<Success> - ) -> Cancellable { - let executor = makeRequestExecutor( - name: name, - requestHandler: requestHandler, - responseHandler: responseHandler - ) - - return executor.execute(retryStrategy: retryStrategy, completionHandler: completionHandler) - } - func makeRequestExecutor<Success>( name: String, requestHandler: RESTRequestHandler, diff --git a/ios/MullvadVPN/StorePaymentManager/SendStoreReceiptOperation.swift b/ios/MullvadVPN/StorePaymentManager/SendStoreReceiptOperation.swift index d29bde3d9d..8efbc96095 100644 --- a/ios/MullvadVPN/StorePaymentManager/SendStoreReceiptOperation.swift +++ b/ios/MullvadVPN/StorePaymentManager/SendStoreReceiptOperation.swift @@ -132,9 +132,8 @@ class SendStoreReceiptOperation: ResultOperation<REST.CreateApplePaymentResponse private func sendReceipt(_ receiptData: Data) { submitReceiptTask = apiProxy.createApplePayment( accountNumber: accountNumber, - receiptString: receiptData, - retryStrategy: .noRetry - ) { result in + receiptString: receiptData + ).execute(retryStrategy: .noRetry) { result in switch result { case let .success(response): self.logger.info( diff --git a/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift b/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift index 3a57873e45..762a89b6d1 100644 --- a/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift +++ b/ios/MullvadVPN/StorePaymentManager/StorePaymentManager.swift @@ -225,10 +225,9 @@ final class StorePaymentManager: NSObject, SKPaymentTransactionObserver { completionHandler: @escaping (StorePaymentManagerError?) -> Void ) { let accountOperation = ResultBlockOperation<Account>(dispatchQueue: .main) { finish in - self.accountsProxy.getAccountData( - accountNumber: accountNumber, + self.accountsProxy.getAccountData(accountNumber: accountNumber).execute( retryStrategy: .default, - completion: finish + completionHandler: finish ) } diff --git a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift index d59beef368..1f8307d2b7 100644 --- a/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift +++ b/ios/MullvadVPN/TunnelManager/SetAccountOperation.swift @@ -239,26 +239,27 @@ class SetAccountOperation: ResultOperation<StoredAccountData?> { private func getAccount(accountNumber: String, completion: @escaping (Result<StoredAccountData, Error>) -> Void) { logger.debug("Request account data...") - let task = accountsProxy - .getAccountData(accountNumber: accountNumber, retryStrategy: .default) { [self] result in - dispatchQueue.async { [self] in - let result = result.inspectError { error in - guard !error.isOperationCancellationError else { return } + let task = accountsProxy.getAccountData(accountNumber: accountNumber).execute( + retryStrategy: .default + ) { [self] result in + dispatchQueue.async { [self] in + let result = result.inspectError { error in + guard !error.isOperationCancellationError else { return } - logger.error(error: error, message: "Failed to receive account data.") - }.map { accountData -> StoredAccountData in - logger.debug("Received account data.") + logger.error(error: error, message: "Failed to receive account data.") + }.map { accountData -> StoredAccountData in + logger.debug("Received account data.") - return StoredAccountData( - identifier: accountData.id, - number: accountNumber, - expiry: accountData.expiry - ) - } - - completion(result) + return StoredAccountData( + identifier: accountData.id, + number: accountNumber, + expiry: accountData.expiry + ) } + + completion(result) } + } tasks.append(task) } diff --git a/ios/MullvadVPN/TunnelManager/UpdateAccountDataOperation.swift b/ios/MullvadVPN/TunnelManager/UpdateAccountDataOperation.swift index 55f7e0eb88..3992f17c90 100644 --- a/ios/MullvadVPN/TunnelManager/UpdateAccountDataOperation.swift +++ b/ios/MullvadVPN/TunnelManager/UpdateAccountDataOperation.swift @@ -36,8 +36,7 @@ class UpdateAccountDataOperation: ResultOperation<Void> { return } - task = accountsProxy.getAccountData( - accountNumber: accountData.number, + task = accountsProxy.getAccountData(accountNumber: accountData.number).execute( retryStrategy: .default ) { result in self.dispatchQueue.async { diff --git a/ios/MullvadVPNTests/APIProxy+Stubs.swift b/ios/MullvadVPNTests/APIProxy+Stubs.swift index 7602a1fe7a..c802a8fa71 100644 --- a/ios/MullvadVPNTests/APIProxy+Stubs.swift +++ b/ios/MullvadVPNTests/APIProxy+Stubs.swift @@ -36,15 +36,6 @@ struct APIProxyStub: APIQuerying { }) } - func createApplePayment( - accountNumber: String, - receiptString: Data, - retryStrategy: REST.RetryStrategy, - completionHandler: @escaping ProxyCompletionHandler<REST.CreateApplePaymentResponse> - ) -> Cancellable { - AnyCancellable() - } - func sendProblemReport( _ body: REST.ProblemReportRequest, retryStrategy: REST.RetryStrategy, diff --git a/ios/MullvadVPNTests/AccountsProxy+Stubs.swift b/ios/MullvadVPNTests/AccountsProxy+Stubs.swift index 6dc2afdade..18e940e8ae 100644 --- a/ios/MullvadVPNTests/AccountsProxy+Stubs.swift +++ b/ios/MullvadVPNTests/AccountsProxy+Stubs.swift @@ -24,14 +24,6 @@ struct AccountsProxyStub: RESTAccountHandling { }) } - func getAccountData( - accountNumber: String, - retryStrategy: REST.RetryStrategy, - completion: @escaping ProxyCompletionHandler<Account> - ) -> Cancellable { - AnyCancellable() - } - func deleteAccount( accountNumber: String, retryStrategy: REST.RetryStrategy, |
