summaryrefslogtreecommitdiffhomepage
path: root/ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2023-06-08 14:02:34 +0200
committerAndrej Mihajlov <and@mullvad.net>2023-06-08 14:02:34 +0200
commitac8deecc4ebd4a71810006d221292c03e36ad120 (patch)
treec76f15cc8d0819f3eef59e766235bfd7049a5503 /ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift
parent0ca8f82db446df494b400f0b467de1bef9e051e4 (diff)
parentdab9467547a35369aafdda7174287921dc7accc8 (diff)
downloadmullvadvpn-ac8deecc4ebd4a71810006d221292c03e36ad120.tar.xz
mullvadvpn-ac8deecc4ebd4a71810006d221292c03e36ad120.zip
Merge remote-tracking branch 'origin/packet-tunnel-should-rotate-the-key-if-ios-109'
Diffstat (limited to 'ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift')
-rw-r--r--ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift58
1 files changed, 58 insertions, 0 deletions
diff --git a/ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift b/ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift
new file mode 100644
index 0000000000..da8c11726d
--- /dev/null
+++ b/ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift
@@ -0,0 +1,58 @@
+//
+// DeviceCheckRemoteService.swift
+// PacketTunnel
+//
+// Created by pronebird on 30/05/2023.
+// Copyright © 2023 Mullvad VPN AB. All rights reserved.
+//
+
+import Foundation
+import MullvadREST
+import MullvadTypes
+import class WireGuardKitTypes.PublicKey
+
+/// An object that implements remote service used by `DeviceCheckOperation`.
+struct DeviceCheckRemoteService: DeviceCheckRemoteServiceProtocol {
+ private let accountsProxy: REST.AccountsProxy
+ private let devicesProxy: REST.DevicesProxy
+
+ init(accountsProxy: REST.AccountsProxy, devicesProxy: REST.DevicesProxy) {
+ self.accountsProxy = accountsProxy
+ self.devicesProxy = devicesProxy
+ }
+
+ func getAccountData(
+ accountNumber: String,
+ completion: @escaping (Result<Account, Error>) -> Void
+ ) -> Cancellable {
+ accountsProxy.getAccountData(accountNumber: accountNumber, retryStrategy: .noRetry, completion: completion)
+ }
+
+ func getDevice(
+ accountNumber: String,
+ identifier: String,
+ completion: @escaping (Result<Device, Error>) -> Void
+ ) -> Cancellable {
+ devicesProxy.getDevice(
+ accountNumber: accountNumber,
+ identifier: identifier,
+ retryStrategy: .noRetry,
+ completion: completion
+ )
+ }
+
+ func rotateDeviceKey(
+ accountNumber: String,
+ identifier: String,
+ publicKey: PublicKey,
+ completion: @escaping (Result<Device, Error>) -> Void
+ ) -> Cancellable {
+ devicesProxy.rotateDeviceKey(
+ accountNumber: accountNumber,
+ identifier: identifier,
+ publicKey: publicKey,
+ retryStrategy: .default,
+ completion: completion
+ )
+ }
+}