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