diff options
| author | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-08 09:32:52 +0200 |
|---|---|---|
| committer | Bug Magnet <marco.nikic@mullvad.net> | 2025-05-08 09:32:52 +0200 |
| commit | caf05bc110aeb3f6c0b4db9723629818e7e81d99 (patch) | |
| tree | 4a15da846efe1f5fe9bf486d2c35727b1e2d1b31 /ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift | |
| parent | a74a0c0aa3270bb2cf7861f94ad7dc590ed50d22 (diff) | |
| parent | 01660f7d4af6fc539ce938f44f26bdf55337b57a (diff) | |
| download | mullvadvpn-caf05bc110aeb3f6c0b4db9723629818e7e81d99.tar.xz mullvadvpn-caf05bc110aeb3f6c0b4db9723629818e7e81d99.zip | |
Merge branch 'implement-storekit2-api-calls-using-mullvad-api-ios-1158'
Diffstat (limited to 'ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift')
| -rw-r--r-- | ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift b/ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift index 8e2ac4fad2..d204165c0d 100644 --- a/ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift +++ b/ios/MullvadREST/MullvadAPI/APIRequest/APIRequestProxy.swift @@ -45,20 +45,32 @@ public final class APIRequestProxy: APIRequestProxyProtocol, @unchecked Sendable completion(ProxyAPIResponse(data: nil, error: nil)) return } + do { + let cancellable = try transport.sendRequest(proxyRequest.request) { [weak self] response in + guard let self else { return } - let cancellable = transport.sendRequest(proxyRequest.request) { [weak self] response in - guard let self else { return } - - // Use `dispatchQueue` to guarantee thread safe access to `proxiedRequests` - dispatchQueue.async { - _ = self.removeRequest(identifier: proxyRequest.id) - completion(response) + // Use `dispatchQueue` to guarantee thread safe access to `proxiedRequests` + dispatchQueue.async { + _ = self.removeRequest(identifier: proxyRequest.id) + completion(response) + } } - } - // Cancel old task, if there's one scheduled. - let oldTask = self.addRequest(identifier: proxyRequest.id, task: cancellable) - oldTask?.cancel() + // Cancel old task, if there's one scheduled. + let oldTask = self.addRequest(identifier: proxyRequest.id, task: cancellable) + oldTask?.cancel() + } catch { + completion( + ProxyAPIResponse( + data: nil, + error: APIError( + statusCode: 0, + errorDescription: error.localizedDescription, + serverResponseCode: nil + ) + ) + ) + } } } |
