SwiftMoyaServiceConfigApi.swift 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. //
  2. // SwiftMoyaServiceConfigApi.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/26.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. // MARK: - 自提点列表
  11. /// 自提点列表
  12. public let kConfigPickupNodeIndexApi = "/config/pickupNode/index"
  13. // MARK: - 已开通城市列表
  14. /// 已开通城市列表
  15. public let kConfigCityManagementIndexApi = "/config/cityManagement/index"
  16. // MARK: - 单图上传
  17. /// 单图上传
  18. public let kConfigUploadSingleImgApi = "/config/upload"
  19. // MARK: - 多图上传
  20. /// 多图上传
  21. public let kConfigUploadMultiImgApi = "/config/multi_upload"
  22. // MARK: - 前端config配置
  23. /// 前端config配置
  24. public let kConfigConfigApi = "/config/config"
  25. // MARK: - 邀请海报
  26. /// 邀请海报
  27. public let kConfigPosterInviteApi = "/config/poster/invite"
  28. // MARK: - 系统升级接口
  29. /// 系统升级接口
  30. public let kConfigUpgradeApi = "/config/upgrade"
  31. // MARK: - 启动页信息
  32. /// 启动页信息
  33. public let kConfigStartupApi = "/config/v3/startup"
  34. // MARK: - 获取sts上传凭证(前台)
  35. /// 获取sts上传凭证(前台)
  36. public let kConfigOSSStsApi = "/config/oss/sts"
  37. /// 基础配置
  38. ///
  39. /// - configPickupNodeIndex: 自提点列表
  40. /// - configCityManagementIndex: 已开通城市列表
  41. /// - configUploadSingleImg: 单图上传
  42. /// - configUploadSingleImgWithoutHud: 单图上传
  43. /// - configUploadMultiImg: 单图上传
  44. /// - configPosterInvite: 邀请海报
  45. /// - configStartup: 启动页信息
  46. /// - configOSSSts: 获取sts上传凭证(前台)
  47. public enum SwiftMoyaServiceConfigApi {
  48. case configConfig(parameters:Dictionary<String,Any>)
  49. case configPickupNodeIndex(parameters:Dictionary<String, Any>)
  50. case configCityManagementIndex(parameters:Dictionary<String, Any>)
  51. case configUploadSingleImg(parameters:Dictionary<String, Any>,dataArray:Array<Any>)
  52. case configUploadSingleImgWithoutHud(parameters:Dictionary<String, Any>,dataArray:Array<Any>)
  53. case configUploadMultiImg(parameters:Dictionary<String, Any>,dataArray:Array<Any>)
  54. case configPosterInvite(parameters:Dictionary<String, Any>)
  55. case configUpgrade(parameters:Dictionary<String, Any>)
  56. case configStartup(parameters:Dictionary<String, Any>)
  57. case configOSSSts(parameters:Dictionary<String, Any>)
  58. }
  59. extension SwiftMoyaServiceConfigApi: TargetType {
  60. public var baseURL: URL {
  61. switch self {
  62. case .configConfig,
  63. .configPickupNodeIndex,
  64. .configCityManagementIndex,
  65. .configUploadSingleImg,
  66. .configUploadSingleImgWithoutHud,
  67. .configUploadMultiImg,
  68. .configPosterInvite,
  69. .configUpgrade,
  70. .configStartup,
  71. .configOSSSts
  72. :
  73. return URL(string: kApiDataPrefix())!
  74. }
  75. }
  76. public var path: String {
  77. switch self {
  78. case .configConfig:
  79. return kConfigConfigApi
  80. case .configPickupNodeIndex:
  81. return kConfigPickupNodeIndexApi
  82. case .configCityManagementIndex:
  83. return kConfigCityManagementIndexApi
  84. case .configUploadSingleImg,
  85. .configUploadSingleImgWithoutHud:
  86. return kConfigUploadSingleImgApi
  87. case .configUploadMultiImg:
  88. return kConfigUploadMultiImgApi
  89. case .configPosterInvite:
  90. return kConfigPosterInviteApi
  91. case .configUpgrade:
  92. return kConfigUpgradeApi
  93. case .configStartup:
  94. return kConfigStartupApi
  95. case .configOSSSts:
  96. return kConfigOSSStsApi
  97. }
  98. }
  99. public var method: Moya.Method {
  100. switch self {
  101. case .configConfig,
  102. .configPickupNodeIndex,
  103. .configCityManagementIndex,
  104. .configPosterInvite,
  105. .configUpgrade,
  106. .configStartup,
  107. .configOSSSts
  108. :
  109. return .get
  110. case .configUploadSingleImg,
  111. .configUploadSingleImgWithoutHud,
  112. .configUploadMultiImg
  113. :
  114. return .post
  115. }
  116. }
  117. // MARK: - 请求任务事件(这里附带上参数)
  118. public var task: Task {
  119. switch self {
  120. case .configConfig(var parameters),
  121. .configPickupNodeIndex(var parameters),
  122. .configCityManagementIndex(var parameters),
  123. .configPosterInvite(var parameters),
  124. .configUpgrade(var parameters),
  125. .configStartup(var parameters),
  126. .configOSSSts(var parameters)
  127. :
  128. let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
  129. parameters.updateValue(sign, forKey: "sign")
  130. return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
  131. case .configUploadSingleImg(_,let dataArray),
  132. .configUploadSingleImgWithoutHud(_,let dataArray),
  133. .configUploadMultiImg(_,let dataArray)
  134. :
  135. return .uploadMultipart(dataArray as! [MultipartFormData])
  136. }
  137. }
  138. // MARK: - 是否执行Alamofire验证
  139. public var validate: Bool {
  140. return false
  141. }
  142. // MARK: - 这个就是做单元测试模拟的数据,只会在单元测试文件中有作用
  143. public var sampleData: Data {
  144. return "{}".data(using: String.Encoding.utf8)!
  145. }
  146. // MARK: - 请求头
  147. public var headers: [String : String]? {
  148. //同task,具体选择看后台 有application/x-www-form-urlencoded 、application/json
  149. switch self {
  150. case .configConfig,
  151. .configUpgrade,
  152. .configStartup
  153. :
  154. return (headerParameters(headerType: .defaultHeader) as! [String : String])
  155. case .configPickupNodeIndex,
  156. .configCityManagementIndex,
  157. .configUploadSingleImg,
  158. .configUploadSingleImgWithoutHud,
  159. .configUploadMultiImg,
  160. .configPosterInvite,
  161. .configOSSSts
  162. :
  163. return (headerParameters(headerType: .tokenHeader) as! [String : String])
  164. }
  165. }
  166. }