108 lines
3.6 KiB
Swift
108 lines
3.6 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 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()
|
||
}
|
||
}
|