暫無描述

ScanQRViewModel.swift 2.4KB

    // // ScanQRViewModel.swift // PaiAi // // Created by ffib on 2018/12/18. // Copyright © 2018 yb. All rights reserved. // import Foundation protocol ScanQRViewModelDelegate { func navigateTo() } public final class ScanQRViewModel { fileprivate var groupResource: Resource<GroupItem>? fileprivate var sessionResource: Resource<GroupItem>? public init() { groupResource = Resource<GroupItem>(url: .joinGroup, param: ["user_id": SharedUserInfo.userId as AnyObject, "nickname": SharedUserInfo.name as AnyObject], parse: parse) sessionResource = Resource<GroupItem>(url: .joinSession, param: ["user_id": SharedUserInfo.userId as AnyObject, "nickname": SharedUserInfo.name as AnyObject], parse: parse) } public func parse(json: [String: AnyObject]) -> GroupItem? { guard let data = json["data"] as? [String: AnyObject], let groupInfo = data["group"] as? [String: AnyObject] else { return nil } return GroupItem(value: groupInfo) } public func join(code: String) { let strs = code.components(separatedBy: "/") guard strs.count > 2, let params = strs.last else { return } let flag = strs[strs.count - 2] switch flag { case "s": guard let lensman_id = params.components(separatedBy: "=").last, let session_id = params.components(separatedBy: "?").first else { return } joinSession(session_id: session_id, lensman_id: lensman_id) case "g": let group_id = params joinGroup(group_id: group_id) default: return } } fileprivate func joinGroup(group_id: String) { groupResource?.parameter["group_id"] = group_id as AnyObject NetworkApi.share.post(resource: groupResource!) { (result) in } } fileprivate func joinSession(session_id: String, lensman_id: String) { sessionResource?.parameter["session_id"] = session_id as AnyObject sessionResource?.parameter["lensman_id"] = lensman_id as AnyObject NetworkApi.share.post(resource: sessionResource!) { (result) in } } }