CommunicateAPI.swift 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // CommunicateAPI.swift
  3. // O2Platform
  4. //
  5. // Created by FancyLou on 2020/6/4.
  6. // Copyright © 2020 zoneland. All rights reserved.
  7. //
  8. import Moya
  9. import O2OA_Auth_SDK
  10. // MARK: - 消息模块
  11. enum CommunicateAPI {
  12. case myConversationList
  13. case msgListByPaging(Int, Int, String)
  14. }
  15. extension CommunicateAPI: OOAPIContextCapable {
  16. var apiContextKey: String {
  17. return "x_message_assemble_communicate"
  18. }
  19. }
  20. // 是否需要xtoken
  21. extension CommunicateAPI: OOAccessTokenAuthorizable {
  22. var shouldAuthorize: Bool {
  23. return true
  24. }
  25. }
  26. extension CommunicateAPI: TargetType {
  27. var baseURL: URL {
  28. let model = O2AuthSDK.shared.centerServerInfo()?.assembles?["x_message_assemble_communicate"]
  29. let baseURLString = "\(model?.httpProtocol ?? "http")://\(model?.host ?? ""):\(model?.port ?? 0)\(model?.context ?? "")"
  30. return URL(string: baseURLString)!
  31. }
  32. var path: String {
  33. switch self {
  34. case .myConversationList:
  35. return "/jaxrs/im/conversation/list/my"
  36. case .msgListByPaging(let page, let size, _):
  37. return "/jaxrs/im/msg/list/\(page)/size/\(size)"
  38. }
  39. }
  40. var method: Moya.Method {
  41. switch self {
  42. case .myConversationList:
  43. return .get
  44. case .msgListByPaging(_, _, _):
  45. return .post
  46. }
  47. }
  48. var sampleData: Data {
  49. return "".data(using: String.Encoding.utf8)!
  50. }
  51. var task: Task {
  52. switch self {
  53. case .myConversationList:
  54. return .requestPlain
  55. case .msgListByPaging(_, _, let conversationId):
  56. let form = IMMessageRequestForm()
  57. form.conversationId = conversationId
  58. return .requestParameters(parameters: form.toJSON()!, encoding: JSONEncoding.default)
  59. }
  60. }
  61. var headers: [String : String]? {
  62. return nil
  63. }
  64. }