144 lines
4.9 KiB
Swift
144 lines
4.9 KiB
Swift
//
|
||
// UserService.swift
|
||
// QuickLocation
|
||
//
|
||
// Created by 八条 on 2026/5/28.
|
||
//
|
||
|
||
import RxSwift
|
||
import Moya
|
||
|
||
struct UserService {
|
||
static let disposeBag = DisposeBag()
|
||
|
||
/// 登录
|
||
/// - Parameters:
|
||
/// - type: weixin、phone、apple、onekey、device、alipay
|
||
/// - bind:1绑定 2解绑 为空是登录
|
||
static func login(type: String,
|
||
bind: String = "",
|
||
data: [String: Any]) -> Observable<UserLoginRespons> {
|
||
return APIProvider.request(token: UserAPI.login(type: type,
|
||
bind: bind,
|
||
data: data).multiTarget,
|
||
handle: false)
|
||
.map(UserLoginRespons.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 用户信息
|
||
static func userInfo() -> Observable<UserConfigResponse> {
|
||
let api = UserAPI.userInfo.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(UserConfigResponse.self)
|
||
.asObservable()
|
||
}
|
||
|
||
static func imToken() -> Observable<ResponseModel> {
|
||
let api = UserAPI.imToken.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 签到信息
|
||
static func signInInfo() -> Observable<SignInInfoResponse> {
|
||
let api = UserAPI.signInInfo.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(SignInInfoResponse.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 更换手机
|
||
static func changePhone(timestamp: String, phone: String, code: String) -> Observable<ResponseModel> {
|
||
let api = UserAPI.changePhone(timestamp: timestamp, phone: phone, code: code).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 设置头像
|
||
static func setHeadPic(index: Int) -> Observable<ResponseModel> {
|
||
let api = UserAPI.setHeadPic(index: index).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 设置昵称
|
||
static func setNickName(nick: String) -> Observable<ResponseModel> {
|
||
let api = UserAPI.setNickName(nick: nick).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 设置性别
|
||
static func setGender(sex: Int) -> Observable<ResponseModel> {
|
||
let api = UserAPI.setGender(sex: sex).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 紧急联系人列表
|
||
static func emergencyContactList() -> Observable<EmergencyContactListResponse> {
|
||
let api = UserAPI.emergencyContact(opType: "get", requestData: [:]).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(EmergencyContactListResponse.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 添加紧急联系人
|
||
static func emergencyContactAdd(requestData: [String: Any]) -> Observable<ResponseModel> {
|
||
let api = UserAPI.emergencyContact(opType: "add", requestData: requestData).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 删除账号
|
||
static func deleteAccount() -> Observable<ResponseModel> {
|
||
let api = UserAPI.deleteAccount.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 退出登录
|
||
static func logout() -> Observable<ResponseModel> {
|
||
let api = UserAPI.logout.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 发送快捷消息、表情
|
||
/// - Parameters:
|
||
/// - target_uid: 对方的user_id
|
||
/// - group_key:频道的key
|
||
/// - emote_idx:表情符号的下标
|
||
static func sendEmote(emoteIdx: Int, groupKey: String, targetUid: String) -> Observable<ResponseModel> {
|
||
let api = UserAPI.sendEmote(emoteIdx: emoteIdx, groupKey: groupKey, targetUid: targetUid).multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 首页公告
|
||
static func notice() -> Observable<ResponseModel> {
|
||
let api = UserAPI.notice.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ResponseModel.self)
|
||
.asObservable()
|
||
}
|
||
|
||
/// 查看关注用户列表
|
||
static func followList() -> Observable<ViewedListResponse> {
|
||
let api = UserAPI.followList.multiTarget
|
||
return APIProvider.request(token: api)
|
||
.map(ViewedListResponse.self)
|
||
.asObservable()
|
||
}
|
||
}
|