// // IHLgoinAPi.swift // Inhealth // // Created by weclouds on 2019/12/6. // Copyright © 2019 weclouds. All rights reserved. // import UIKit import Moya import Alamofire //import RxSwift //import RxCocoa let LoginProvider = MoyaProvider(plugins: [NetworkLoggerPlugin(verbose: true, responseDataFormatter: JSONResponseDataFormatter),networkActivityPlugin]) func JSONResponseDataFormatter(_ data: Data) -> Data { do { let dataAsJSON = try JSONSerialization.jsonObject(with: data) let prettyData = try JSONSerialization.data(withJSONObject: dataAsJSON, options: .prettyPrinted) return prettyData } catch { return data //fallback to original data if it cant be serialized } } let networkActivityPlugin = NetworkActivityPlugin { (change,target) -> () in switch(change) { case .ended: DispatchQueue.main.async { UIApplication.shared.isNetworkActivityIndicatorVisible = false } case .began: DispatchQueue.main.async { UIApplication.shared.isNetworkActivityIndicatorVisible = true } } } enum LoginApi { case common_get_code_image case common_login(username:String,client_key:String,password:String,os:String,version:String,code:String?) case common_hotel_nav case common_build_nav(hotelId:String) case common_floor_nav(buildId:String) case common_room_nav(floorId:String) case common_get_user_role(username:String) case common_register_user(username:String,password:String,truePassword:String,name:String,age:String,roomId:String,avatar:String) case user_get_room_status(username:String,client_key:String,os:String,version:String,token:String) } extension LoginApi: TargetType{ var base :String { return moyaBase } var baseURL: URL { return URL(string:base)! } var path: String { switch self { case .common_get_code_image: return "common/get_code_image" case .common_login: return "common/login" case .common_hotel_nav: return "common/hotel_nav" case .common_build_nav: return "common/build_nav" case .common_floor_nav: return "common/floor_nav" case .common_room_nav: return "common/room_nav" case .common_get_user_role: return "common/get_user_role" case .common_register_user: return "common/register_user" case .user_get_room_status: return "user/get_room_status" } } var method: Moya.Method { return .post } var sampleData: Data { switch self { case .common_get_code_image: return stubbedResponse("common_get_code_image") case .common_login: return stubbedResponse("common_login") case .common_hotel_nav: return stubbedResponse("common_login") case .common_build_nav: return stubbedResponse("common_login") case .common_floor_nav: return stubbedResponse("common_login") case .common_room_nav: return stubbedResponse("common_login") case .common_get_user_role: return stubbedResponse("common_get_user_role") case .common_register_user: return stubbedResponse("common_register_user") case .user_get_room_status: return stubbedResponse("user_get_room_status") } } var task: Task { switch self { case .common_get_code_image: return .requestParameters(parameters: [String:Any](), encoding: URLEncoding.default) case .common_login(let username,let client_key,let password,let os,let version,let code): var p = ["username" :username, "client_key":client_key, "password" : password, "os":os, "version":version ] if let code = code { p["code"] = code } return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_hotel_nav: let p = ["1":"1"] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_build_nav(let hotelId): let p = ["hotelId":hotelId] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_floor_nav(let buildId): let p = ["buildId":buildId] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_room_nav(let floorId): let p = ["floorId":floorId] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_get_user_role(let username): let p = ["username":username] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .common_register_user(let username, let password, let truePassword, let name, let age, let roomId,let avatar): let p = ["username":username,"password":password,"truePassword":truePassword,"name":name,"age":age,"roomId":roomId,"avatar":avatar] return .requestParameters(parameters: p, encoding: URLEncoding.default) case .user_get_room_status(let username, let client_key, let os, let version, let token): let p = ["username" :username, "client_key":client_key, "os":os, "version":version, "token":token ] return .requestParameters(parameters: p, encoding: URLEncoding.default) } } var headers: [String : String]? { return nil } }