|
//
// MessageListRemoteAPI.swift
// PaiaiDataKit
//
// Created by ffib on 2018/12/29.
// Copyright © 2018 yb. All rights reserved.
//
import Foundation
import RxSwift
struct MessageListRemoteAPI {
var type: MessageType
init(type: MessageType) {
self.type = type
}
private func parse(_ json: JSON) -> NetworkArrayData<MessageListItem>? {
guard let data = json["data"] as? [String: AnyObject] else { return nil }
return NetworkArrayData<MessageListItem>(json: data, dataField: "messages")
}
func loadContent(page: Int) -> Single<NetworkArrayData<MessageListItem>> {
let resource = ContentResource<NetworkArrayData<MessageListItem>>(path: type.model.path,
parameter: ["user_id": ShareUserId, "page": page],
parseJSON: parse)
return resource.loadContent()
}
func remove(pk: Int) -> Completable {
let removeResource = StatusResource(path: type.model.removePath,
parameter: ["user_id": ShareUserId, "pk": pk])
return removeResource.getStatus()
}
func removeAll() -> Completable {
let removeResource = StatusResource(path: type.model.removePath,
parameter: ["user_id": ShareUserId, "all": true])
return removeResource.getStatus()
}
func readed() -> Completable {
let readedResource = StatusResource(path: type.model.readPath,
parameter: ["user_id": ShareUserId])
return readedResource.getStatus()
}
}
|