1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 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<UserInfo> {
- 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
- }
- }
|