Няма описание

MessageRepository.swift 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // MessageRepository.swift
  3. // PaiAi
  4. //
  5. // Created by ffib on 2018/12/7.
  6. // Copyright © 2018 yb. All rights reserved.
  7. //
  8. import Foundation
  9. import RxSwift
  10. public protocol MessageInteractionModel {
  11. var path: Interfaces { get }
  12. var removePath: Interfaces { get }
  13. var readPath: Interfaces { get }
  14. var title: String { get }
  15. }
  16. extension MessageType {
  17. public var model: MessageInteractionModel {
  18. switch self {
  19. case .thumbup: return MessagethumbupInteractionModel()
  20. case .comment: return MessageCommentInteractionModel()
  21. case .system: return MessageSystemInteractionModel()
  22. }
  23. }
  24. fileprivate struct MessagethumbupInteractionModel: MessageInteractionModel {
  25. var path: Interfaces { return .mesThumbupList}
  26. var removePath: Interfaces { return .mesThumbupClear }
  27. var readPath: Interfaces { return .mesThumbupRead }
  28. var title: String { return "赞" }
  29. }
  30. fileprivate struct MessageCommentInteractionModel: MessageInteractionModel {
  31. var path: Interfaces { return .mesCommentList}
  32. var removePath: Interfaces { return .mesCommentClear }
  33. var readPath: Interfaces { return .mesCommentRead }
  34. var title: String { return "评论" }
  35. }
  36. fileprivate struct MessageSystemInteractionModel: MessageInteractionModel {
  37. var path: Interfaces { return .mesSystemList}
  38. var removePath: Interfaces { return .mesSystemClear }
  39. var readPath: Interfaces { return .mesSystemRead }
  40. var title: String { return "系统消息" }
  41. }
  42. }
  43. struct MessageRepository {
  44. var messageRemoteAPI = MessageRemoteAPI()
  45. func loadContent() -> Single<[MessageItem]> {
  46. return messageRemoteAPI.loadContent()
  47. }
  48. func loadMessageList(_ type: MessageType, page: Int) -> Single<NetworkArrayData<MessageListItem>> {
  49. return messageRemoteAPI.loadMessageList(type, page: page)
  50. }
  51. func remove(_ type: MessageType, pk: Int) -> Completable {
  52. return messageRemoteAPI.remove(type, pk: pk)
  53. }
  54. func removeAll(_ type: MessageType) -> Completable {
  55. return messageRemoteAPI.removeAll(type)
  56. }
  57. func readed(_ type: MessageType) -> Completable {
  58. return messageRemoteAPI.readed(type)
  59. }
  60. }