|
//
// 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
}
}
}
|