SwiftMoyaServiceCommunityApi.swift 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457
  1. //
  2. // SwiftMoyaServiceCommunityApi.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/6/24.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. // MARK: - 话题组列表
  11. /// 话题组列表
  12. public let kCommunityTopicCategoryApi = "/community/topicCategory"
  13. // MARK: - 关注推荐话题
  14. /// 关注推荐话题
  15. public let kCommunityMemberFollowTopicApi = "/community/memberFollowTopic"
  16. // MARK: - 个人中心内容
  17. /// 个人中心内容
  18. public let kCommunityPostMyApi = "/community/post/my"
  19. // MARK: - 话题列表
  20. /// 话题列表
  21. public let kCommunityTopicsApi = "/community/topic"
  22. // MARK: - 内容列表
  23. /// 内容列表(Get)
  24. public let kCommunityPostsApi = "/community/post"
  25. // MARK: - 发布内容
  26. /// 发布内容(Post)
  27. public let kCommunityPublishApi = "/community/post"
  28. // MARK: - 删除内容
  29. /// 删除内容(Post)
  30. public let kCommunityDeleteApi = "/community/post"
  31. // MARK: - 获取上传地址和凭证
  32. /// 获取上传地址和凭证(视频)
  33. public let kCommunityVideoUploadAuthApi = "/community/getVodUploadAuth"
  34. /// 获取上传地址和凭证(图片)
  35. public let kCommunityImageUploadAuthApi = "/community/vod/upload/image"
  36. // MARK: - 视频列表
  37. /// 视频列表
  38. public let kCommunityVideoListApi = "/community/post/video"
  39. // MARK: - 关注页面feed流
  40. /// 关注页面feed流
  41. public let kCommunityFollowFeedApi = "/community/feed"
  42. // MARK: - 推荐内容分类
  43. /// 推荐内容分类
  44. public let kCommunityPostCategoryApi = "/community/post/category"
  45. // MARK: - 推荐内容
  46. /// 推荐内容
  47. public let kCommunityPostSuggestApi = "/community/post/suggest"
  48. // MARK: - 话题详情
  49. /// 话题详情
  50. public let kCommunityTopicDetailApi = "/community/topic/detail"
  51. // MARK: - 话题内容列表
  52. /// 话题内容列表
  53. public let kCommunityPostTopicApi = "/community/post/topic"
  54. // MARK: - 我关注的话题列表
  55. /// 我关注的话题列表
  56. public let kCommunityMemberFollowTopicListApi = "/community/memberFollowTopic"
  57. // MARK: - 关注话题(单个)
  58. /// 关注话题(单个)
  59. public let kCommunityMemberFollowTopicFollowApi = "/community/memberFollowTopic/follow"
  60. // MARK: - 取消关注话题
  61. /// 取消关注话题
  62. public let kCommunityMemberFollowTopicCancelFollowApi = "/community/memberFollowTopic/cancel"
  63. // MARK: - 内容详情
  64. /// 内容详情
  65. public let kCommunityPostDetailApi = "/community/post/detail"
  66. // MARK: - 评论列表
  67. /// 评论列表
  68. public let kCommunityPostCommentsApi = "/community/post/comment"
  69. // MARK: - 回复列表
  70. /// 回复列表
  71. public let kCommunityPostReplyApi = "/community/post/reply"
  72. // MARK: - 评论&回复
  73. ///// 评论&回复
  74. public let kCommunityPostCommentApi = "/community/post/comment"
  75. // MARK: - 删除评论
  76. /// 删除评论
  77. public let kCommunityPostDeleteCommentApi = "/community/post/comment"
  78. // MARK: - 用户上传音乐
  79. /// 用户上传音乐
  80. public let kCommunityUploadMusicApi = "/community/music/upload"
  81. // MARK: - 热门推荐音乐列表
  82. /// 热门推荐音乐列表
  83. public let kCommunityRecMusicListApi = "/community/musicList"
  84. // MARK: - 获取音乐分类
  85. /// 获取音乐分类
  86. public let kCommunityGetMusicCategoryApi = "/community/category/list"
  87. // MARK: - 获取分类下所有音乐
  88. /// 获取分类下所有音乐
  89. public let kCommunityCateMusicListApi = "/community/music"
  90. // MARK: - 圈子详情
  91. /// 圈子详情
  92. public let kCommunityCircleApi = "/community/circle"
  93. // MARK: - 加入圈子 / 退出圈子
  94. /// 加入圈子 / 退出圈子
  95. public let kCommunityCircleJoinApi = "/community/circle/join"
  96. // MARK: - 圈子进入问题
  97. /// 圈子进入问题
  98. public let kCommunityCircleQuestionApi = "/community/circle/question"
  99. // MARK: - 圈子用户列表
  100. /// 圈子用户列表
  101. public let kCommunityCircleMembersApi = "/community/circle/members"
  102. /// 社区
  103. ///
  104. /// - communityTopicCategory: 话题组列表
  105. /// - communityMemberFollowTopic: 关注推荐话题
  106. /// - communityPostMy: 个人中心内容
  107. /// - communityTopics: 话题列表
  108. /// - communityPosts: 内容列表
  109. /// - communityPublish: 发布内容
  110. /// - communityVideoUploadAuth: 视频上传凭证
  111. /// - communityImageUploadAuth: 图片上传凭证
  112. /// - communityVideoList: 视频列表
  113. /// - communityFeed: 关注页面feed流
  114. /// - communityPostCategory: 推荐内容分类
  115. /// - communityPostSuggest: 推荐内容
  116. /// - communityTopicDetail: 话题详情
  117. /// - communityPostTopic: 话题内容列表
  118. /// - communityMemberFollowTopicList: 我关注的话题列表
  119. /// - communityMemberFollowTopicFollow: 关注话题(单个)
  120. /// - communityMemberFollowTopicCancelFollow: 取消关注话题
  121. /// - communityPostDetail: 内容详情
  122. /// - communityPostComments : 评论列表
  123. /// - communityPostReply : 回复列表
  124. /// - communityPostComment : 评论&回复
  125. /// - communityPostDeleteComment : 删除评论
  126. /// - communityUploadMusic : 用户上传音乐
  127. /// - communityRecMusicList : 热门推荐音乐列表
  128. /// - communityGetMusicCategory : 获取音乐分类
  129. /// - communityCateMusicList : 获取分类下所有音乐
  130. /// - communityCircle : 圈子详情
  131. /// - communityCircleJoinPost : 加入圈子
  132. /// - communityCircleJoinDelete : 退出圈子
  133. /// - communityCircleQuestion : 圈子进入问题
  134. /// - communityCircleMembers : 圈子用户列表
  135. public enum SwiftMoyaServiceCommunityApi {
  136. case communityTopicCategory(parameters:Dictionary<String, Any>)
  137. case communityMemberFollowTopic(parameters:Dictionary<String, Any>)
  138. case communityPostMy(parameters:Dictionary<String, Any>)
  139. case communityTopics(parameters:Dictionary<String, Any>)
  140. case communityPosts(parameters:Dictionary<String, Any>)
  141. case communityPublish(parameters:Dictionary<String, Any>)
  142. case communityDelete(parameters:Dictionary<String, Any>)
  143. case communityVideoUploadAuth(parameters:Dictionary<String, Any>)
  144. case communityImageUploadAuth(parameters:Dictionary<String, Any>)
  145. case communityVideoList(parameters:Dictionary<String, Any>)
  146. case communityFollowFeed(parameters:Dictionary<String, Any>)
  147. case communityPostCategory(parameters:Dictionary<String, Any>)
  148. case communityPostSuggest(parameters:Dictionary<String, Any>)
  149. case communityTopicDetail(parameters:Dictionary<String, Any>)
  150. case communityPostTopic(parameters:Dictionary<String, Any>)
  151. case communityMemberFollowTopicList(parameters:Dictionary<String, Any>)
  152. case communityMemberFollowTopicFollow(parameters:Dictionary<String, Any>)
  153. case communityMemberFollowTopicCancelFollow(parameters:Dictionary<String, Any>)
  154. case communityPostDetail(parameters:Dictionary<String, Any>)
  155. case communityPostComments(parameters:Dictionary<String, Any>)
  156. case communityPostReply(parameters:Dictionary<String, Any>)
  157. case communityPostComment(parameters:Dictionary<String, Any>)
  158. case communityPostDeleteComment(parameters:Dictionary<String, Any>)
  159. case communityUploadMusic(parameters:Dictionary<String, Any>)
  160. case communityRecMusicList(parameters:Dictionary<String, Any>)
  161. case communityGetMusicCategory(parameters:Dictionary<String, Any>)
  162. case communityCateMusicList(parameters:Dictionary<String, Any>)
  163. case communityCircle(parameters:Dictionary<String, Any>)
  164. case communityCircleJoinPost(parameters:Dictionary<String, Any>)
  165. case communityCircleJoinDelete(parameters:Dictionary<String, Any>)
  166. case communityCircleQuestion(parameters:Dictionary<String, Any>)
  167. case communityCircleMembers(parameters:Dictionary<String, Any>)
  168. }
  169. extension SwiftMoyaServiceCommunityApi: TargetType {
  170. public var baseURL: URL {
  171. switch self {
  172. case .communityTopicCategory,
  173. .communityMemberFollowTopic,
  174. .communityPostMy,
  175. .communityTopics,
  176. .communityPosts,
  177. .communityPublish,
  178. .communityDelete,
  179. .communityVideoUploadAuth,
  180. .communityImageUploadAuth,
  181. .communityVideoList,
  182. .communityFollowFeed,
  183. .communityPostCategory,
  184. .communityPostSuggest,
  185. .communityTopicDetail,
  186. .communityPostTopic,
  187. .communityMemberFollowTopicList,
  188. .communityMemberFollowTopicFollow,
  189. .communityMemberFollowTopicCancelFollow,
  190. .communityPostDetail,
  191. .communityPostComments,
  192. .communityPostReply,
  193. .communityPostComment,
  194. .communityPostDeleteComment,
  195. .communityUploadMusic,
  196. .communityRecMusicList,
  197. .communityGetMusicCategory,
  198. .communityCateMusicList,
  199. .communityCircle,
  200. .communityCircleJoinPost,
  201. .communityCircleJoinDelete,
  202. .communityCircleQuestion,
  203. .communityCircleMembers
  204. :
  205. return URL(string: kApiDataPrefix())!
  206. }
  207. }
  208. public var path: String {
  209. switch self {
  210. case .communityTopicCategory:
  211. return kCommunityTopicCategoryApi
  212. case .communityMemberFollowTopic:
  213. return kCommunityMemberFollowTopicApi
  214. case .communityPostMy:
  215. return kCommunityPostMyApi
  216. case .communityTopics:
  217. return kCommunityTopicsApi
  218. case .communityPosts:
  219. return kCommunityPostsApi
  220. case .communityPublish:
  221. return kCommunityPublishApi
  222. case .communityDelete:
  223. return kCommunityDeleteApi
  224. case .communityVideoUploadAuth:
  225. return kCommunityVideoUploadAuthApi
  226. case .communityImageUploadAuth:
  227. return kCommunityImageUploadAuthApi
  228. case .communityVideoList:
  229. return kCommunityVideoListApi
  230. case .communityFollowFeed:
  231. return kCommunityFollowFeedApi
  232. case .communityPostCategory:
  233. return kCommunityPostCategoryApi
  234. case .communityPostSuggest:
  235. return kCommunityPostSuggestApi
  236. case .communityTopicDetail:
  237. return kCommunityTopicDetailApi
  238. case .communityPostTopic:
  239. return kCommunityPostTopicApi
  240. case .communityMemberFollowTopicList:
  241. return kCommunityMemberFollowTopicListApi
  242. case .communityMemberFollowTopicFollow:
  243. return kCommunityMemberFollowTopicFollowApi
  244. case .communityMemberFollowTopicCancelFollow:
  245. return kCommunityMemberFollowTopicCancelFollowApi
  246. case .communityPostDetail:
  247. return kCommunityPostDetailApi
  248. case .communityPostComments:
  249. return kCommunityPostCommentsApi
  250. case .communityPostReply:
  251. return kCommunityPostReplyApi
  252. case .communityPostComment:
  253. return kCommunityPostCommentApi
  254. case .communityPostDeleteComment:
  255. return kCommunityPostDeleteCommentApi
  256. case .communityUploadMusic:
  257. return kCommunityUploadMusicApi
  258. case .communityRecMusicList:
  259. return kCommunityRecMusicListApi
  260. case .communityGetMusicCategory:
  261. return kCommunityGetMusicCategoryApi
  262. case .communityCateMusicList:
  263. return kCommunityCateMusicListApi
  264. case .communityCircle:
  265. return kCommunityCircleApi
  266. case .communityCircleJoinPost:
  267. return kCommunityCircleJoinApi
  268. case .communityCircleJoinDelete:
  269. return kCommunityCircleJoinApi
  270. case .communityCircleQuestion:
  271. return kCommunityCircleQuestionApi
  272. case .communityCircleMembers:
  273. return kCommunityCircleMembersApi
  274. }
  275. }
  276. public var method: Moya.Method {
  277. switch self {
  278. case .communityMemberFollowTopic,
  279. .communityPublish,
  280. .communityMemberFollowTopicFollow,
  281. .communityPostComment,
  282. .communityUploadMusic,
  283. .communityCircleJoinPost
  284. :
  285. return .post
  286. case .communityTopicCategory,
  287. .communityPostMy,
  288. .communityTopics,
  289. .communityPosts,
  290. .communityVideoUploadAuth,
  291. .communityImageUploadAuth,
  292. .communityVideoList,
  293. .communityFollowFeed,
  294. .communityPostCategory,
  295. .communityPostSuggest,
  296. .communityTopicDetail,
  297. .communityPostTopic,
  298. .communityMemberFollowTopicList,
  299. .communityPostDetail,
  300. .communityPostComments,
  301. .communityPostReply,
  302. .communityRecMusicList,
  303. .communityGetMusicCategory,
  304. .communityCateMusicList,
  305. .communityCircle,
  306. .communityCircleQuestion,
  307. .communityCircleMembers
  308. :
  309. return .get
  310. case .communityMemberFollowTopicCancelFollow,
  311. .communityDelete,
  312. .communityPostDeleteComment,
  313. .communityCircleJoinDelete
  314. :
  315. return .delete
  316. }
  317. }
  318. // MARK: - 请求任务事件(这里附带上参数)
  319. public var task: Task {
  320. switch self {
  321. case .communityTopicCategory(var parameters),
  322. .communityMemberFollowTopic(var parameters),
  323. .communityPostMy(var parameters),
  324. .communityTopics(var parameters),
  325. .communityPosts(var parameters),
  326. .communityPublish(var parameters),
  327. .communityDelete(var parameters),
  328. .communityVideoUploadAuth(var parameters),
  329. .communityImageUploadAuth(var parameters),
  330. .communityVideoList(var parameters),
  331. .communityFollowFeed(var parameters),
  332. .communityPostCategory(var parameters),
  333. .communityPostSuggest(var parameters),
  334. .communityTopicDetail(var parameters),
  335. .communityPostTopic(var parameters),
  336. .communityMemberFollowTopicList(var parameters),
  337. .communityMemberFollowTopicFollow(var parameters),
  338. .communityMemberFollowTopicCancelFollow(var parameters),
  339. .communityPostDetail(var parameters),
  340. .communityPostComments(var parameters),
  341. .communityPostReply(var parameters),
  342. .communityPostComment(var parameters),
  343. .communityPostDeleteComment(var parameters),
  344. .communityUploadMusic(var parameters),
  345. .communityRecMusicList(var parameters),
  346. .communityGetMusicCategory(var parameters),
  347. .communityCateMusicList(var parameters),
  348. .communityCircle(var parameters),
  349. .communityCircleJoinPost(var parameters),
  350. .communityCircleJoinDelete(var parameters),
  351. .communityCircleQuestion(var parameters),
  352. .communityCircleMembers(var parameters)
  353. :
  354. let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
  355. parameters.updateValue(sign, forKey: "sign")
  356. return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
  357. }
  358. }
  359. // MARK: - 是否执行Alamofire验证
  360. public var validate: Bool {
  361. return false
  362. }
  363. // MARK: - 这个就是做单元测试模拟的数据,只会在单元测试文件中有作用
  364. public var sampleData: Data {
  365. return "{}".data(using: String.Encoding.utf8)!
  366. }
  367. // MARK: - 请求头
  368. public var headers: [String : String]? {
  369. //同task,具体选择看后台 有application/x-www-form-urlencoded 、application/json
  370. switch self {
  371. case .communityTopicCategory,
  372. .communityMemberFollowTopic,
  373. .communityPostMy,
  374. .communityTopics,
  375. .communityPosts,
  376. .communityPublish,
  377. .communityDelete,
  378. .communityVideoUploadAuth,
  379. .communityImageUploadAuth,
  380. .communityVideoList,
  381. .communityFollowFeed,
  382. .communityPostCategory,
  383. .communityPostSuggest,
  384. .communityTopicDetail,
  385. .communityPostTopic,
  386. .communityMemberFollowTopicList,
  387. .communityMemberFollowTopicFollow,
  388. .communityMemberFollowTopicCancelFollow,
  389. .communityPostDetail,
  390. .communityPostComments,
  391. .communityPostReply,
  392. .communityPostComment,
  393. .communityPostDeleteComment,
  394. .communityUploadMusic,
  395. .communityRecMusicList,
  396. .communityGetMusicCategory,
  397. .communityCateMusicList,
  398. .communityCircle,
  399. .communityCircleJoinPost,
  400. .communityCircleJoinDelete,
  401. .communityCircleQuestion,
  402. .communityCircleMembers
  403. :
  404. return (headerParameters(headerType: .tokenHeader) as! [String : String])
  405. }
  406. }
  407. }