|
//
// 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)
}
}
|