// // LoginAPI.swift // JiaPeiManage // // Created by Ning.ge on 2023/6/12. // import Moya import SwiftyUserDefaults enum LoginAPI { //登录 case loginUser(user_name:String, user_password:String) //修改密码 case updateUser(user_name:String, user_password:String,code:String) } extension LoginAPI: TargetType { var baseURL: URL { switch self { case .loginUser,.updateUser: return URL(string: HttpRequest.http.path)! } } var path: String { switch self { case .loginUser(_,_): return "appservice/student/stuLogin" //basePath(path: "appservice/student/stuLogin") case .updateUser(_,_,_): return "appservice/student/update" } } var method: Moya.Method { switch self { case .loginUser,.updateUser: return .post default: return .get } } var sampleData: Data { return Data() } var task: Moya.Task { switch self { case .loginUser(_,_): if let parameters = parameters { // return .requestCompositeParameters(bodyParameters: parameters, bodyEncoding: URLEncoding.httpBody, urlParameters: sign(with: urlParameters!)!) return .requestParameters(parameters: parameters, encoding: URLEncoding.default) } return .requestPlain case .updateUser(_,_,_): if let parameters = parameters { return .requestParameters(parameters: parameters, encoding: URLEncoding.default) } return .requestPlain } } var headers: [String: String]? { switch self { case .loginUser: var urlParameters = urlParameters! let sgin = "" // signStr(with: urlParameters) urlParameters["sign"] = sgin // 遍历字典的键值对及索引 var hs:[String: String] = [:] for (index, (key, value)) in urlParameters.enumerated() { // 如果 value 为空则跳过 let vv = value as? String if vv!.count == 0 { continue } hs[key] = vv } return hs default: return ["Content-Type":"application/json"] } } var parameters: [String : Any]? { switch self { case let .loginUser(user_name, user_password): return ["loginCode": user_name, "password": "", "version": NYMacros.appVersion ?? "1.1.0", "appType": "2", "systemVersion": String(format: "iOS %.1f", NYMacros.iOSVersion),//手机操作系统版本 "photo": "", "sex": "", "nickName": "", "openId": "", "loginType": "1",] case let .updateUser(user_name, user_password, code): return ["username": user_name, "password": user_password,"code":code]; default: return nil } } var urlParameters: [String: Any]? { var parameters = parameters // if let extendsParameters = ["":""] { // parameters = parameters?.merging(extendsParameters) { $1 } //组合 // } return parameters } }