jsdw_ios/QuickLocation/API/PigeonAPI.swift

85 lines
2.4 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// PigeonAPI.swift
// QuickLocation
//
import Moya
internal import Alamofire
enum PigeonAPI {
/// 发送飞鸽传书
/// - Parameters:
/// - groupKey: 圈子 key
/// - toUsers: 收件人加密 id
/// - msgType: 2 语音 3 文案
/// - msg: 文案留言,或语音 file id
/// - bgImg: 自定义背景图 file id;图片模版传 0
/// - expireTime: 过期秒数,0 表示服务端默认 7 天
case send(
groupKey: String,
toUsers: [String],
msgType: Int,
msg: String,
bgImg: Int64,
expireTime: Int,
extra: [String: Any]?
)
/// 已发送的传书记录
case sent(groupKey: String)
/// 收件箱
case inbox
/// 阅后即焚
case burn(messageUUID: String)
}
extension PigeonAPI: MultiTargetProtocol {
var path: String {
switch self {
case .send:
return "mapi/pigeon/send"
case .sent:
return "mapi/pigeon/sent"
case .inbox:
return "mapi/pigeon/inbox/messages"
case .burn:
return "mapi/pigeon/burn"
}
}
var method: Moya.Method {
switch self {
case .sent, .inbox:
return .get
case .send, .burn:
return .post
}
}
var task: Moya.Task {
switch self {
case let .send(groupKey, toUsers, msgType, msg, bgImg, expireTime, extra):
var params = Parameters()
params["group_key"] = groupKey
params["to_user"] = toUsers
params["msg_type"] = msgType
params["msg"] = msg
params["bg_img"] = bgImg
params["expire_time"] = expireTime
if let extra {
params["extra"] = extra
}
return .requestParameters(parameters: params, encoding: JSONEncoding())
case let .sent(groupKey):
var params = Parameters()
if !groupKey.isEmpty {
params["group_key"] = groupKey
}
return .requestParameters(parameters: params, encoding: URLEncoding())
case .inbox:
return .requestParameters(parameters: Parameters(), encoding: URLEncoding())
case let .burn(messageUUID):
return .requestParameters(parameters: ["message_uuid": messageUUID], encoding: JSONEncoding())
}
}
}