// // GuestUserInfoRemoteAPI.swift // PaiaiDataKit // // Created by ffib on 2018/12/26. // Copyright © 2018 yb. All rights reserved. // import Foundation import RxSwift struct GuestUserInfoRemoteAPI: UserInfoRemoteAPI { typealias Model = UserInfo var path: Interfaces { return .guestLogin } var parameter: Parameter = [:] init() { parameter = ["uuid": getUUID()] } func login() -> Single { return Single.create(subscribe: { (observer) in observer(.success(UserInfo(json: ["user_id": "fiDz2Ms" as AnyObject, "userName": "郑剑飞" as AnyObject, "photoPath": "https://wx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTJibSYLgvXpMakvD9FaCqfiaWqcMiaiaz905YxWPuO4hy8F2lGheV7kVr9vKKXFgmL1S5s4QJgxwuwtVw/132" as AnyObject]))) return Disposables.create() }) } func getUUID() -> String { let keyChainDic = NSMutableDictionary() keyChainDic.setObject(String(kSecClassGenericPassword), forKey: kSecClass as! NSCopying) keyChainDic.setObject("uuid", forKey: kSecAttrAccount as! NSCopying) keyChainDic.setObject(kCFBooleanTrue, forKey: kSecReturnAttributes as! NSCopying) keyChainDic.setObject(kCFBooleanTrue, forKey: kSecReturnData as! NSCopying) var result: AnyObject? var uuid: String? = nil SecItemCopyMatching(keyChainDic, &result) if let resultDic = result as? NSDictionary { if let data = resultDic.object(forKey: kSecValueData) as? Data { uuid = NSString(data: data, encoding: String.Encoding.ascii.rawValue) as String? } } if let uuid = uuid { return uuid } let uuidStr = UUID().uuidString let data = uuidStr.data(using: .ascii) keyChainDic.setObject(data!, forKey: kSecValueData as! NSCopying) SecItemAdd(keyChainDic, nil) return uuidStr } } //extension GuestUserInfoRemoteAPI { // func parse(_ json: JSON) -> UserInfo? { // guard let result = json["data"] as? [String: AnyObject] else { return nil } // return UserInfo(json: result) // } // //}