暂无描述

OrderModel.swift 1.6KB

    // // OrderModel.swift // PaiAi // // Created by zhengjianfei on 16/4/7. // Copyright © 2016年 FFIB. All rights reserved. // import Foundation import RxSwift import RxCocoa final class OrderModel { } final class OrderModel { private(set) var items: BehaviorRelay<[OrderItem]> private var hasMore = true private var page = 1 private var contentsResource: Resource<[OrderItem]>? init() { items = BehaviorRelay<[OrderItem]>(value: []) contentsResource = Resource(url: .orderList, param: ["user_id": SharedUserInfo.userId as AnyObject], parse: parse) } private func parse(json: [String: AnyObject]) -> [OrderItem]? { guard let data = json["data"], let orders = data["orders"] as? [[String: AnyObject]], let left = data["left"] as? Int else { return nil } hasMore = left > 0 return orders.map { return OrderItem(json: $0) } } func loadContents(isRefresh: Bool) { guard hasMore else { return } page = isRefresh ? 1 : page + 1 contentsResource?.parameter["page"] = page as AnyObject NetworkApi.share.post(resource: contentsResource!) { [weak self] result in guard case let .success(orderItems) = result else { return } guard let `self` = self else { return } if isRefresh { self.items.accept(orderItems) } else { self.items.accept(orderItems + self.items.value) } } } }