You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
session-ios/SessionSnodeKit/Models/SnodeRequest.swift

34 lines
838 B
Swift

// Copyright © 2022 Rangeproof Pty Ltd. All rights reserved.
import Foundation
import SessionUtilitiesKit
public struct SnodeRequest<T: Encodable>: Encodable {
private enum CodingKeys: String, CodingKey {
case method
case body = "params"
}
internal let endpoint: SnodeAPI.Endpoint
internal let body: T
// MARK: - Initialization
public init(
endpoint: SnodeAPI.Endpoint,
body: T
) {
self.endpoint = endpoint
self.body = body
}
// MARK: - Codable
public func encode(to encoder: Encoder) throws {
var container: KeyedEncodingContainer<CodingKeys> = encoder.container(keyedBy: CodingKeys.self)
try container.encode(endpoint.rawValue, forKey: .method)
try container.encode(body, forKey: .body)
}
}