99 lines
2.5 KiB
Swift
99 lines
2.5 KiB
Swift
//
|
|
// SystemAPI.swift
|
|
// SHECommunity
|
|
//
|
|
// Created by 林 on 2024/11/27.
|
|
//
|
|
|
|
import Moya
|
|
internal import Alamofire
|
|
|
|
/// App通用API
|
|
enum SystemAPI {
|
|
/// 获取用户配置
|
|
case userConfig
|
|
|
|
/// 发送验证码
|
|
/// - Parameters:
|
|
/// - phone: 手机号
|
|
case sendCode(phone: String)
|
|
|
|
/// 微信客服
|
|
case wechatService
|
|
|
|
/// SOS
|
|
case sos(enable: Bool)
|
|
|
|
/// 查找
|
|
/// - Parameters:
|
|
/// - op_type: plate_num 车牌
|
|
/// - phone 手机号
|
|
case search(op_type: String, number: String)
|
|
|
|
/// 手机归属地
|
|
/// - Parameters:
|
|
/// - phone 手机号
|
|
case phoneArea(phone: String)
|
|
|
|
}
|
|
|
|
extension SystemAPI: MultiTargetProtocol {
|
|
|
|
var path: String {
|
|
switch self {
|
|
case .userConfig:
|
|
return "api/user/config"
|
|
case .sendCode:
|
|
return "api/user/sms/code"
|
|
case .wechatService:
|
|
return "api/weixin/service"
|
|
case .sos:
|
|
return "mapi/sos/operate"
|
|
case .search:
|
|
return "mapi/car/search"
|
|
case .phoneArea:
|
|
return "mapi/phonearea"
|
|
}
|
|
}
|
|
|
|
var method: Moya.Method {
|
|
switch self {
|
|
case .userConfig, .wechatService, .phoneArea:
|
|
return .get
|
|
default:
|
|
return .post
|
|
}
|
|
}
|
|
|
|
var task: Moya.Task {
|
|
switch self {
|
|
case .userConfig:
|
|
return .requestParameters(parameters: parameters, encoding: URLEncoding())
|
|
|
|
case let .sendCode(phone):
|
|
var params = Parameters()
|
|
params["phone"] = phone
|
|
return .requestParameters(parameters: params, encoding: JSONEncoding())
|
|
|
|
case .wechatService:
|
|
return .requestParameters(parameters: parameters, encoding: URLEncoding())
|
|
|
|
case let .sos(enable):
|
|
var params = Parameters()
|
|
params["enable"] = enable
|
|
return .requestParameters(parameters: params, encoding: JSONEncoding())
|
|
|
|
case let .search(op_type, number):
|
|
var params = Parameters()
|
|
params["op_type"] = op_type
|
|
params["number"] = number
|
|
return .requestParameters(parameters: params, encoding: JSONEncoding())
|
|
|
|
case let .phoneArea(phone):
|
|
var params = Parameters()
|
|
params["phone"] = phone
|
|
return .requestParameters(parameters: params, encoding: URLEncoding())
|
|
}
|
|
}
|
|
}
|