// // 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 { return APIProvider.request(token: UserAPI.login(type: type, bind: bind, data: data).multiTarget, handle: false) .map(UserLoginRespons.self) .asObservable() } /// 用户信息 static func userInfo() -> Observable { let api = UserAPI.userInfo.multiTarget return APIProvider.request(token: api) .map(UserConfigResponse.self) .asObservable() } static func imToken() -> Observable { let api = UserAPI.imToken.multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 更换手机 static func changePhone(timestamp: String, phone: String, code: String) -> Observable { 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 { let api = UserAPI.setHeadPic(index: index).multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 设置昵称 static func setNickName(nick: String) -> Observable { let api = UserAPI.setNickName(nick: nick).multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 设置性别 static func setGender(sex: Int) -> Observable { let api = UserAPI.setGender(sex: sex).multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 紧急联系人列表 static func emergencyContactList() -> Observable { let api = UserAPI.emergencyContact(opType: "get", requestData: [:]).multiTarget return APIProvider.request(token: api) .map(EmergencyContactListResponse.self) .asObservable() } /// 添加紧急联系人 static func emergencyContactAdd(requestData: [String: Any]) -> Observable { let api = UserAPI.emergencyContact(opType: "add", requestData: requestData).multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 删除账号 static func deleteAccount() -> Observable { let api = UserAPI.deleteAccount.multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } /// 退出登录 static func logout() -> Observable { let api = UserAPI.logout.multiTarget return APIProvider.request(token: api) .map(ResponseModel.self) .asObservable() } }