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