// // LoginService.swift // JiaPeiManage // // Created by Ning.ge on 2023/6/12. // import RxSwift import RxCocoa import SwiftyJSON protocol LoginServiceType { func loginRequest(user_name: String, user_password: String, city:String) -> Single func updateRequest(user_name: String, user_password: String,new_password: String, city:String) -> Single func dictRequest(dictType:String) -> Single<[CityItem]> //授权 func authorizationRequest(code: String, city:String) -> Single //绑定 func biandUserRequest(idcard:String, user_password:String, openid:String,city:String) -> Single //解绑 func unbiandUserRequest(idcard:String, user_password:String, city:String) -> Single } final class LoginService: LoginServiceType { private let networking : LoginNetworking init(networking: LoginNetworking) { self.networking = networking } //登录 func loginRequest(user_name: String, user_password: String,city:String) -> RxSwift.Single { let api = LoginAPI.loginUser(user_name: user_name, user_password: user_password,city: city) return networking.request(api).map(UserInfo.self) } //修改密码 func updateRequest(user_name: String, user_password: String, new_password: String, city: String) -> RxSwift.Single { let api = LoginAPI.updateUser(user_name: user_name, user_password: user_password, new_password: new_password, city: city) return networking.request(api).map(UpdateDataModel.self, isModel: true) } //获取地区字典 func dictRequest(dictType: String) -> RxSwift.Single<[CityItem]> { let api = LoginAPI.dictUser(dictType: dictType) return networking.request(api).map(CityItem.self) } func authorizationRequest(code: String, city: String) -> RxSwift.Single { let api = LoginAPI.authorizationCode(code: code, city: city) return networking.request(api).map(AuthorizationDataModel.self,isModel: true) } func biandUserRequest(idcard: String, user_password: String, openid: String, city: String) -> RxSwift.Single { let api = LoginAPI.biandUser(idcard: idcard, user_password: user_password, openid: openid, city: city) return networking.request(api).map(AuthorizationDataModel.self,isModel: true) } func unbiandUserRequest(idcard: String, user_password: String, city: String) -> RxSwift.Single { let api = LoginAPI.unbiandUser(idcard: idcard, user_password: user_password, city: city) return networking.request(api).map(AuthorizationDataModel.self,isModel: true) } }