Нет описания

ScanQRViewModel.swift 1.5KB

    // // ScanQRViewModel.swift // PaiaiDataKit // // Created by FFIB on 2018/12/18. // Copyright © 2018 FFIB. All rights reserved. // import Foundation import RxSwift public protocol ScanQRViewModelDelegate: class { func navigateToGroupFromScanQR(_ item: GroupItem) } public final class ScanQRViewModel { public weak var delegate: ScanQRViewModelDelegate? var repository: PhotoGroupRepository var disposeBag = DisposeBag() public init() { repository = PhotoGroupRepository() } 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 lensmanId = params.components(separatedBy: "=").last, let sessionId = params.components(separatedBy: "?").first else { return } repository.join(type: .session, parameter: ["session_id": sessionId, "lensman_id": lensmanId]) .subscribe(onSuccess: { item in self.delegate?.navigateToGroupFromScanQR(item) }).disposed(by: disposeBag) case "g": repository.join(type: .group, parameter: ["group_id": params]) .subscribe(onSuccess: { item in self.delegate?.navigateToGroupFromScanQR(item) }).disposed(by: disposeBag) default: return } } }