Files
e-party-iOS/yana/APIs/API.swift
edwinQQQ a0200c8859 feat: 添加项目基础文件和依赖管理
新增.gitignore、Podfile和Podfile.lock文件以管理项目依赖,添加README.md文件提供项目简介和安装步骤,创建NIMSessionManager、ClientConfig、LogManager和NetworkManager等管理类以支持网络请求和日志记录功能,更新AppDelegate和ContentView以集成NIM SDK和实现用户登录功能。
2025-05-29 16:14:28 +08:00

60 lines
1.8 KiB
Swift

import Foundation
import Alamofire
enum HttpRequestMethod: String {
case get = "GET"
case post = "POST"
//
}
typealias HttpRequestCompletion = (Result<Data, Error>) -> Void
class API {
//
static func makeRequest(
route: String,
method: HttpRequestMethod,
params: [String: Any],
completion: @escaping HttpRequestCompletion
) {
let httpMethod: HTTPMethod = {
switch method {
case .get: return .get
case .post: return .post
}
}()
NetworkManager.shared.request(route, method: httpMethod, parameters: params) { (result: Result<Data, NetworkError>) in
switch result {
case .success(let data):
completion(.success(data))
case .failure(let error):
completion(.failure(error))
}
}
}
//
static func getUserInfo(uid: String, completion: @escaping HttpRequestCompletion) {
let route = "user/get"
let params = ["uid": uid]
makeRequest(route: route, method: .get, params: params, completion: completion)
}
static func phoneSmsCode(mobile: String, type: String, phoneAreaCode: String, completion: @escaping HttpRequestCompletion) {
let route = "sms/getCode"
let params = ["mobile": mobile, "type": type, "phoneAreaCode": phoneAreaCode]
makeRequest(route: route, method: .post, params: params, completion: completion)
}
}
extension API //ClientConfig
{
static func clientInit(completion: @escaping HttpRequestCompletion) {
makeRequest(route: "client/init",
method: .get,
params: [:],
completion: completion)
}
}