//
// SimpleViewModel.swift
// PaiAi
//
// Created by mac on 2016/12/5.
// Copyright © 2016年 FFIB. All rights reserved.
//
import Foundation
import RxCocoa
import RxSwift
enum DataType: String {
case groupData = "groups"
case orderData = "orders"
case messageData = "messages"
}
protocol SimpleViewModel: ViewModel where T == Request.NetworkResponse {
associatedtype Request: NetworkRequest
var request: Request { get }
var networkApi: NetworkApi { get }
mutating func fetchData(_ refresh: Bool)
}
extension SimpleViewModel where Request.NetworkResponse: GroupParsable {
mutating func fetchData(_ refresh: Bool = true) {
guard hasMoreData else {
return
}
page += 1
let copyself = self
networkApi.post(request: request) { (res) in
if refresh {
copyself.models.value = res
}else {
copyself.models.value += res
}
}
}
}
|