Nenhuma Descrição

MessageRepository.swift 2.3KB

    // // MessageRepository.swift // PaiAi // // Created by ffib on 2018/12/7. // Copyright © 2018 yb. All rights reserved. // import Foundation import RxSwift public protocol MessageInteractionModel { var path: Interfaces { get } var removePath: Interfaces { get } var readPath: Interfaces { get } var title: String { get } } extension MessageType { public var model: MessageInteractionModel { switch self { case .thumbup: return MessagethumbupInteractionModel() case .comment: return MessageCommentInteractionModel() case .system: return MessageSystemInteractionModel() } } fileprivate struct MessagethumbupInteractionModel: MessageInteractionModel { var path: Interfaces { return .mesThumbupList} var removePath: Interfaces { return .mesThumbupClear } var readPath: Interfaces { return .mesThumbupRead } var title: String { return "赞" } } fileprivate struct MessageCommentInteractionModel: MessageInteractionModel { var path: Interfaces { return .mesCommentList} var removePath: Interfaces { return .mesCommentClear } var readPath: Interfaces { return .mesCommentRead } var title: String { return "评论" } } fileprivate struct MessageSystemInteractionModel: MessageInteractionModel { var path: Interfaces { return .mesSystemList} var removePath: Interfaces { return .mesSystemClear } var readPath: Interfaces { return .mesSystemRead } var title: String { return "系统消息" } } } struct MessageRepository { var messageRemoteAPI = MessageRemoteAPI() func loadContent() -> Single<[MessageItem]> { return messageRemoteAPI.loadContent() } func loadMessageList(_ type: MessageType, page: Int) -> Single<NetworkArrayData<MessageListItem>> { return messageRemoteAPI.loadMessageList(type, page: page) } func remove(_ type: MessageType, pk: Int) -> Completable { return messageRemoteAPI.remove(type, pk: pk) } func removeAll(_ type: MessageType) -> Completable { return messageRemoteAPI.removeAll(type) } func readed(_ type: MessageType) -> Completable { return messageRemoteAPI.readed(type) } }