IMViewModel.swift 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // IMViewModel.swift
  3. // O2Platform
  4. //
  5. // Created by FancyLou on 2020/6/4.
  6. // Copyright © 2020 zoneland. All rights reserved.
  7. //
  8. import Promises
  9. class IMViewModel: NSObject {
  10. override init() {
  11. super.init()
  12. }
  13. let communicateAPI = OOMoyaProvider<CommunicateAPI>()
  14. }
  15. extension IMViewModel {
  16. //查询会话列表
  17. func myConversationList() -> Promise<[IMConversationInfo]> {
  18. return Promise { fulfill, reject in
  19. self.communicateAPI.request(.myConversationList, completion: { result in
  20. let response = OOResult<BaseModelClass<[IMConversationInfo]>>(result)
  21. if response.isResultSuccess() {
  22. if let list = response.model?.data {
  23. fulfill(list)
  24. }else {
  25. reject(OOAppError.apiEmptyResultError)
  26. }
  27. }else {
  28. reject(response.error!)
  29. }
  30. })
  31. }
  32. }
  33. //查询消息列表
  34. func myMsgPageList(page: Int, conversationId: String) -> Promise<[IMMessageInfo]> {
  35. return Promise { fulfill, reject in
  36. self.communicateAPI.request(.msgListByPaging(page, 40, conversationId), completion: { result in
  37. let response = OOResult<BaseModelClass<[IMMessageInfo]>>(result)
  38. if response.isResultSuccess() {
  39. if let list = response.model?.data {
  40. //列表翻转
  41. let rList = list.sorted { (f, s) -> Bool in
  42. if let ft = f.createTime, let st = s.createTime {
  43. return ft.toDate(formatter: "yyyy-MM-dd HH:mm:ss") < st.toDate(formatter: "yyyy-MM-dd HH:mm:ss")
  44. }
  45. return true
  46. }
  47. fulfill(rList)
  48. }else {
  49. reject(OOAppError.apiEmptyResultError)
  50. }
  51. }else {
  52. reject(response.error!)
  53. }
  54. })
  55. }
  56. }
  57. }