diff options
Diffstat (limited to 'ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift')
| -rw-r--r-- | ios/PacketTunnel/DeviceCheck/DeviceCheckRemoteService.swift | 58 |
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 + ) + } +} |
