1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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<MessageListItem>? {
- guard let data = json["data"] as? [String: AnyObject] else { return nil }
- return NetworkArrayData<MessageListItem>(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<NetworkArrayData<MessageListItem>> {
- let resource = ContentResource<NetworkArrayData<MessageListItem>>(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()
- }
- }
|