summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@mullvad.net>2025-03-31 11:45:12 +0200
committerJon Petersson <jon.petersson@mullvad.net>2025-03-31 11:45:12 +0200
commit12b98273d2d3057dfa30d2367d80d3504f3b11e9 (patch)
tree9d5eadcd15c4391e95f223a57db98c5228507d42 /ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift
parent2640cd40b6a7a2468945b5c4c4be42bbe509c4e5 (diff)
parentb6a47bc377db48f39414d7587995b41bff4f8901 (diff)
downloadmullvadvpn-12b98273d2d3057dfa30d2367d80d3504f3b11e9.tar.xz
mullvadvpn-12b98273d2d3057dfa30d2367d80d3504f3b11e9.zip
Merge branch 'implement-getrelays-using-mullvad-api-ios-1133'
Diffstat (limited to 'ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift')
-rw-r--r--ios/MullvadREST/MullvadAPI/APIRequest/APIRequest.swift50
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..ea51e22508
--- /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-list"
+ }
+ }
+
+ var retryStrategy: REST.RetryStrategy {
+ switch self {
+ case let .getAddressList(strategy), let .getRelayList(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
+ }
+}