summaryrefslogtreecommitdiffhomepage
path: root/ios/MullvadREST/APIRequest/APIRequest.swift
blob: 4fff7bd32bcab4782340525d70f64ccf206331d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//
//  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)

    var retryStrategy: REST.RetryStrategy {
        switch self {
        case let .getAddressList(strategy):
            return 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 init(data: Data?, error: APIError?) {
        self.data = data
        self.error = error
    }
}