//
// MessageListRepository.swift
// PaiAi
//
// Created by zhengjianfei on 16/4/7.
// Copyright © 2016年 FFIB. 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 MessageListRepository {
var messageListRemotAPI: MessageListRemoteAPI
init(type: MessageType) {
messageListRemotAPI = MessageListRemoteAPI(type: type)
}
func load(page: Int) -> Single<NetworkArrayData<MessageListItem>> {
return messageListRemotAPI.loadContent(page: page)
}
func remove(pk: Int) -> Completable {
return messageListRemotAPI.remove(pk: pk)
}
func removeAll() -> Completable {
return messageListRemotAPI.removeAll()
}
func readed() -> Completable {
return messageListRemotAPI.readed()
}
}
|