diff options
| author | Jon Petersson <jon.petersson@mullvad.net> | 2025-03-13 13:17:16 +0100 |
|---|---|---|
| committer | Jon Petersson <jon.petersson@mullvad.net> | 2025-03-31 11:39:29 +0200 |
| commit | eb72686c74607872ee510b432a442ea10baa1b86 (patch) | |
| tree | 40b51bd8e94c88633ec4c7332241986465355bf6 /ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift | |
| parent | efbb2c3c0c95f7e7a195c03e9d2483ec731a578e (diff) | |
| download | mullvadvpn-eb72686c74607872ee510b432a442ea10baa1b86.tar.xz mullvadvpn-eb72686c74607872ee510b432a442ea10baa1b86.zip | |
Tie rust and Swift side together
Diffstat (limited to 'ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift')
| -rw-r--r-- | ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift b/ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift new file mode 100644 index 0000000000..2462a998a7 --- /dev/null +++ b/ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift @@ -0,0 +1,50 @@ +// +// APIRequest.swift +// MullvadVPN +// +// Created by Jon Petersson on 2025-02-24. +// Copyright © 2025 Mullvad VPN AB. All rights reserved. +// + +public enum APIRequest: Codable, Sendable { + case getAddressList(_ retryStrategy: REST.RetryStrategy) + case getRelayList(_ retryStrategy: REST.RetryStrategy, etag: String?) + + var name: String { + switch self { + case .getAddressList: + "get-address-list" + case .getRelayList: + "get-relay-lisy" + } + } + + var retryStrategy: REST.RetryStrategy { + switch self { + case .getAddressList(let strategy), .getRelayList(let strategy, _): + strategy + } + } +} + +public struct ProxyAPIRequest: Codable, Sendable { + public let id: UUID + public let request: APIRequest + + public init(id: UUID, request: APIRequest) { + self.id = id + self.request = request + } +} + +public struct ProxyAPIResponse: Codable, Sendable { + public let data: Data? + public let error: APIError? + public let etag: String? + + public init(data: Data?, error: APIError?, etag: String? = nil) { + self.data = data + self.error = error + self.etag = etag + } +} |
