Sin Descripción

PhotoDetailItemViewModel.swift 1.8KB

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