OOHotpicAPI.swift 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //
  2. // HotpicAPI.swift
  3. // o2app
  4. //
  5. // Created by 刘振兴 on 2017/12/6.
  6. // Copyright © 2017年 zone. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. import O2OA_Auth_SDK
  11. // MARK:- 所有调用的API枚举
  12. enum OOHotpicAPI {
  13. case allHotpic(page:Int,count:Int)
  14. case allHotpicHome(CommonPageParameter)
  15. case hotpicImageSize(id:String,size:Int)
  16. case hotpicImageInfo(id:String)
  17. }
  18. // MARK:- 上下文实现
  19. extension OOHotpicAPI:OOAPIContextCapable {
  20. var apiContextKey: String {
  21. return "x_hotpic_assemble_control"
  22. }
  23. }
  24. // MARK: - 是否需要加入x-token访问头
  25. extension OOHotpicAPI:OOAccessTokenAuthorizable {
  26. public var shouldAuthorize: Bool {
  27. return true
  28. }
  29. }
  30. // MARK: - 扩展API Moya实现
  31. extension OOHotpicAPI:TargetType {
  32. var baseURL: URL {
  33. let model = O2AuthSDK.shared.o2APIServer(context: .x_hotpic_assemble_control)
  34. let baseURLString = "\(model?.httpProtocol ?? "http")://\(model?.host ?? ""):\(model?.port ?? 0)\(model?.context ?? "")"
  35. return URL(string: baseURLString)!
  36. }
  37. var path: String {
  38. switch self {
  39. case .allHotpic(let page,let count):
  40. return "/jaxrs/user/hotpic/filter/list/page/\(page)/count/\(count)"
  41. case .allHotpicHome(let parameter):
  42. return "/jaxrs/user/hotpic/filter/list/page/\(parameter.currentPageNo)/count/\(parameter.countByPage)"
  43. case .hotpicImageInfo(let imageId):
  44. return "servlet/picture/\(imageId)"
  45. case .hotpicImageSize(let imageId, let size):
  46. return "/servlet/picture/\(imageId)/size/\(size)"
  47. }
  48. }
  49. var method: Moya.Method {
  50. switch self {
  51. case .allHotpicHome(_),.allHotpic(_,_):
  52. return .put
  53. default:
  54. return .get
  55. }
  56. }
  57. var sampleData: Data {
  58. return "".data(using: String.Encoding.utf8)!
  59. }
  60. var task: Task {
  61. switch self {
  62. case .allHotpic(_,_):
  63. return .requestPlain
  64. case .allHotpicHome(_):
  65. return .requestPlain
  66. case .hotpicImageInfo(_):
  67. return .requestPlain
  68. case .hotpicImageSize(_,_):
  69. return .requestPlain
  70. }
  71. }
  72. var headers: [String : String]? {
  73. return nil
  74. }
  75. }