2025-05-12 16:27:55 +08:00

48 lines
1.2 KiB
Swift

//
// SDLApi.swift
// sdlan
//
// Created by on 2024/6/5.
//
import Foundation
struct JSONRPCResponse<T: Decodable>: Decodable {
let result: T?
let error: JSONRPCError?
}
struct JSONRPCError: Decodable {
let code: Int
let message: String
let data: String?
}
struct SDLAPI {
struct Upgrade: Decodable {
let upgrade_type: Int
let upgrade_prompt: String
let upgrade_address: String
}
static func checkVersion(clientId: String, version: Int, channel: String) async throws -> JSONRPCResponse<Upgrade> {
let params: [String:Any] = [
"client_id": clientId,
"version": version,
"channel": channel
]
let postData = try! JSONSerialization.data(withJSONObject: params)
var request = URLRequest(url: URL(string: "http://127.0.0.1:18082/test/upgrade")!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
return try JSONDecoder().decode(JSONRPCResponse<Upgrade>.self, from: data)
}
}