|
//
// PhotoDetailViewModel.swift
// PaiAi
//
// Created by zhengjianfei on 2017/1/4.
// Copyright © 2017年 FFIB. All rights reserved.
//
import Foundation
import RxSwift
import RxCocoa
import RxDataSources
public final class PhotoDetailItemViewModel {
var item: BehaviorRelay<PhotoItem>
var thumbupItems = BehaviorRelay<[PhotoThumbupUserItem]>(value: [])
var commentItems = BehaviorRelay<[PhotoCommentItem]>(value: [])
private var repository: PhotoDetailRepository
private var disposeBag = DisposeBag()
public init(item: PhotoItem) {
self.item = BehaviorRelay<PhotoItem>(value: item)
self.repository = PhotoDetailRepository(photoId: item.photo_id, groupId: item.group_id)
self.item.subscribe(onNext: {[unowned self] (photoItem) in
self.repository = PhotoDetailRepository(photoId: photoItem.photo_id, groupId: photoItem.group_id)
self.loadCommentItems()
self.loadThumbupUserItems()
}).disposed(by: disposeBag)
}
private func loadThumbupUserItems() {
repository.loadThumbups().subscribe(onSuccess: { (items) in
self.thumbupItems.accept(items)
}).disposed(by: disposeBag)
}
private func loadCommentItems() {
repository.loadComments().subscribe(onSuccess: { (items) in
self.commentItems.accept(items)
}).disposed(by: disposeBag)
}
public func submitThumbup() {
repository.submitThumbup().subscribe(onSuccess: { items in
self.thumbupItems.accept(items)
}).disposed(by: disposeBag)
}
public func submitComment(text: String) {
repository.submitComment(text: text).subscribe(onSuccess: { (items) in
self.commentItems.accept(items)
}).disposed(by: disposeBag)
}
}
|