Nessuna descrizione

CreateGroupConfirmViewModel.swift 2.3KB

    // // CreateGroupConfirmViewModel.swift // PaiAi // // Created by ffib on 2018/12/17. // Copyright © 2018 yb. All rights reserved. // import Foundation import RxSwift import RxCocoa fileprivate let DefaultGroupNames = ["苹果", "香蕉", "西兰花", "杨梅", "胡萝卜", "樱桃", "玉米", "火龙果", "茄子", "无花果", "葡萄", "柠檬", "山竹", "橘子", "木瓜", "水蜜桃", "菠萝", "草莓", "西瓜"] public final class CreateGroupConfirmViewModel { fileprivate var groupModel: BehaviorRelay<GroupItem?> fileprivate var createGroupResource: Resource<GroupItem>? public var avatar: Observable<String> public var name: Observable<String> public var groupModelUntilNotNil: Observable<GroupItem?> public init() { let random = Int(arc4random_uniform(19)) avatar = Observable.create({ (observer) -> Disposable in observer.onNext(DefaultGroupNames[random]) return Disposables.create() }) name = avatar.flatMapLatest({ (currentAvatar) in Observable.just("\(SharedUserInfo.name)的\(currentAvatar)群") }).share() groupModel = BehaviorRelay<GroupItem?>(value: nil) groupModelUntilNotNil = groupModel.filter { $0 != nil } name.bind { (groupName) in let params = ["group_name": groupName as AnyObject, "group_default_avatar": random as AnyObject, "user_id": SharedUserInfo.userId as AnyObject] self.createGroupResource = Resource<GroupItem>.init(url: .groupCreate, param: params, parse: self.parse) }.dispose() } public func parse(json: [String: AnyObject]) -> GroupItem? { print(json) return nil } public func createGroup() { NetworkApi.share.post(resource: createGroupResource!) { (result) in guard case let .success(item) = result else { return } self.groupModel.accept(item) } } }