SwiftMoyaServiceUserApi.swift 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527
  1. //
  2. // SwiftMoyaServiceUserApi.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/3/29.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import Foundation
  9. import Moya
  10. // MARK: - 登出
  11. /// 登出
  12. public let kUserLogoutApi = "/user/logout"
  13. // MARK: - 刷新用户信息
  14. /// 刷新用户信息
  15. public let kUserRefreshApi = "/user/refresh"
  16. // MARK: - 微信注册/登录
  17. /// 微信注册/登录
  18. public let kUserWeiXinRegisterApi = "/user/weixinRegister"
  19. // MARK: - 手机验证码注册/登录
  20. /// 手机验证码注册/登录
  21. public let kUserMobileRegisterApi = "/user/mobileRegister"
  22. // MARK: - 手机密码登录
  23. /// 手机密码登录
  24. public let kUserMobileLoginApi = "/user/mobileLogin"
  25. // MARK: - 绑定微信
  26. /// 绑定微信
  27. public let kUserBindWeixinApi = "/user/bindWeixin"
  28. // MARK: - 绑定手机号码
  29. /// 绑定手机号码
  30. public let kUserBindMobileApi = "/user/bindMobile"
  31. // MARK: - 换绑手机号码
  32. /// 换绑手机号码
  33. public let kUserchangeBindMobileApi = "/user/changeBindMobile"
  34. // MARK: - 设置密码
  35. /// 设置密码
  36. public let kUserSetPasswordApi = "/user/setPassword"
  37. // MARK: - 解绑微信
  38. /// 解绑微信
  39. public let kUserUnbindWeixinApi = "/user/unbindWeixin"
  40. // MARK: - 检查是否绑定微信
  41. /// 检查是否绑定微信
  42. public let kUserIsBindWeixinApi = "/user/isBindWeixin"
  43. // MARK: - 用户自提点,快递地址列表
  44. /// 用户自提点,快递地址列表
  45. public let kUserSelfAddressListApi = "/user/selfAddressList"
  46. // MARK: - (新增、编辑)快递地址
  47. /// (新增、编辑)快递地址
  48. public let kUserAddExpressAddressApi = "/user/addExpressAddress"
  49. // MARK: - 设置默认(自提/快递)地址
  50. /// 设置默认(自提/快递)地址
  51. public let kUserAddressIsDefaultApi = "/user/addressIsDefault"
  52. // MARK: - 删除(快递)地址
  53. /// 删除(快递)地址
  54. public let kUserAddressDeleteApi = "/user/addressDelete"
  55. // MARK: - 自提点收货人列表
  56. /// 自提点收货人列表
  57. public let kUserExpreesContactsListApi = "/user/expreesContactsList"
  58. // MARK: - 获取默认快递信息
  59. /// 获取默认快递信息
  60. public let kUserDefaultExpressApi = "/user/getDefault"
  61. // MARK: - 获取默认自提收货人
  62. /// 获取默认自提收货人
  63. public let kUserDefaultContactApi = "/user/getContactsDefault"
  64. // MARK: - 新增、编辑 自提地址收货人信息
  65. /// 新增、编辑 自提地址收货人信息
  66. public let kUserSaveExpreesContactsApi = "/user/saveExpreesContacts"
  67. // MARK: - 删除自提点收货人信息
  68. /// 删除自提点收货人信息
  69. public let kUserDelExpreesContactsApi = "/user/delExpreesContacts"
  70. // MARK: - 自提点收货人信息,设置默认
  71. /// 自提点收货人信息,设置默认
  72. public let kUserSetExpreesContactsDefaultApi = "/user/setExpreesContactsDefault"
  73. // MARK: - 新增自提地址
  74. /// 新增自提地址
  75. public let kUserAddSelfAddressApi = "/user/addSelfAddress"
  76. // MARK: - 设置用户配送方式
  77. /// 设置用户配送方式
  78. public let kUserSetDeliverTypeApi = "/user/setDeliverType"
  79. // MARK: - 设置用户性别
  80. /// 设置用户性别
  81. public let kUserMemberUpdateGenderApi = "/user/v2/member/updateGender"
  82. // MARK: - 用户详情
  83. /// 用户详情
  84. public let kUserMemberDetailApi = "/user/v2/member"
  85. // MARK: - 修改用户头像昵称签名
  86. /// 修改用户头像昵称签名
  87. public let kUserMemberDetailUpDateApi = "/user/v2/member"
  88. // MARK: - 关注列表
  89. /// 关注列表
  90. public let kUserFollowsApi = "/user/v2/follow"
  91. // MARK: - 粉丝列表
  92. /// 粉丝列表
  93. public let kUserFansApi = "/user/v2/follow/fans"
  94. // MARK: - 关注
  95. /// 关注
  96. public let kUserFollowApi = "/user/v2/follow"
  97. // MARK: - 取消关注
  98. /// 取消关注
  99. public let kUserCancelFollowApi = "/user/v2/follow/cancelFollow"
  100. // MARK: - 检查用户关注状态
  101. /// 检查用户关注状态
  102. public let kUserFollowCheckStatusApi = "/user/v2/follow/checkStatus"
  103. // MARK: - 用户消息消息首页
  104. /// 用户消息消息首页
  105. public let kUserMemberMessageIndexApi = "/user/v2/member/messageIndex"
  106. // MARK: - 用户消息列表
  107. /// 用户消息列表
  108. public let kUserMemberMessageListApi = "/user/v2/member/messageList"
  109. // MARK: - 用户消息阅读
  110. /// 用户消息阅读
  111. public let kUserMemberReadMessageApi = "/user/v2/member/readMessage"
  112. // MARK: - 用户搜索列表
  113. /// 用户搜索列表
  114. public let kUserMemberSearchMemberApi = "/user/v2/member/searchMember"
  115. // MARK: - 获取用户U米总额
  116. /// 获取用户U米总额
  117. public let kUserMemberGetTotalBeanApi = "/user/v2/member/getTotalBean"
  118. // MARK: - 手机号码一键登录
  119. /// 手机号码一键登录
  120. public let kUserMobileAuthorizationLoginApi = "/user/mobileAuthorizationLogin"
  121. /// 用户
  122. ///
  123. /// - userLogout: 登出
  124. /// - userRefresh: 刷新用户信息
  125. /// - userWeiXinRegister: 微信注册/登录
  126. /// - userMobileRegister: 手机验证码注册/登录
  127. /// - userMobileLogin: 手机密码登录
  128. /// - userBindWeixin: 绑定微信
  129. /// - userBindMobile: 绑定手机号码
  130. /// - userchangeBindMobile: 换绑手机号码
  131. /// - userSetPassword: 设置密码
  132. /// - userUnbindWeixin: 解绑微信
  133. /// - userIsBindWeixin: 检查是否绑定微信
  134. /// - UserSelfAddressList: 用户自提点,快递地址列表
  135. /// - userAddExpressAddress: (新增、编辑)快递地址
  136. /// - userAddressIsDefault: 设置默认(自提/快递)地址
  137. /// - userAddressDelete: 删除(自提/快递)地址
  138. /// - userExpreesContactsList: 自提点收货人列表
  139. /// - userDefaultExpress: 获取默认快递信息
  140. /// - userDefaultContact: 获取默认自提收货人
  141. /// - userSaveExpreesContacts: 新增、编辑 自提地址收货人信息
  142. /// - userDelExpreesContacts: 删除自提点收货人信息
  143. /// - userSetExpreesContactsDefault: 自提点收货人信息,设置默认
  144. /// - userSetExpreesContactsDefault: 新增自提地址
  145. /// - userSetDeliverType: 设置用户配送方式
  146. /// - userMemberUpdateGender: 设置用户性别
  147. /// - userMemberDetail: 用户详情
  148. /// - userMemberDetailUpDate: 更新用户信息
  149. /// - userFollow: 关注列表
  150. /// - userFans: 粉丝列表
  151. /// - userFollowUpdate: 关注用户
  152. /// - userCancelFollow: 取消关注
  153. /// - userFollowCheckStatus: 检查用户关注状态
  154. /// - userMemberMessageIndex: 用户消息消息首页
  155. /// - userMemberMessageList: 用户消息列表
  156. /// - userMemberReadMessage: 用户消息阅读
  157. /// - userMemberSearchMember: 用户搜索列表
  158. /// - userMemberGetTotalBean: 获取用户U米总额
  159. /// - userMobileAuthorizationLogin: 手机号码一键登录
  160. public enum SwiftMoyaServiceUserApi {
  161. case userLogout(parameters:Dictionary<String, Any>)
  162. case userRefresh(parameters:Dictionary<String, Any>)
  163. case userWeiXinRegister(parameters:Dictionary<String, Any>)
  164. case userMobileRegister(parameters:Dictionary<String, Any>)
  165. case userMobileLogin(parameters:Dictionary<String, Any>)
  166. case userBindWeixin(parameters:Dictionary<String, Any>)
  167. case userBindMobile(parameters:Dictionary<String, Any>)
  168. case userchangeBindMobile(parameters:Dictionary<String, Any>)
  169. case userSetPassword(parameters:Dictionary<String, Any>)
  170. case userUnbindWeixin(parameters:Dictionary<String, Any>)
  171. case userIsBindWeixin(parameters:Dictionary<String, Any>)
  172. case userSelfAddressList(parameters:Dictionary<String, Any>)
  173. case userAddExpressAddress(parameters:Dictionary<String, Any>)
  174. case userAddressIsDefault(parameters:Dictionary<String, Any>)
  175. case userAddressDelete(parameters:Dictionary<String, Any>)
  176. case userExpreesContactsList(parameters:Dictionary<String, Any>)
  177. case userDefaultExpress(parameters:Dictionary<String, Any>)
  178. case userDefaultContact(parameters:Dictionary<String, Any>)
  179. case userSaveExpreesContacts(parameters:Dictionary<String, Any>)
  180. case userDelExpreesContacts(parameters:Dictionary<String, Any>)
  181. case userSetExpreesContactsDefault(parameters:Dictionary<String, Any>)
  182. case userAddSelfAddress(parameters:Dictionary<String, Any>)
  183. case userSetDeliverType(parameters:Dictionary<String, Any>)
  184. case userMemberUpdateGender(parameters:Dictionary<String, Any>)
  185. case userMemberDetail(parameters:Dictionary<String, Any>)
  186. case userMemberDetailUpDate(parameters:Dictionary<String, Any>)
  187. case userFollows(parameters:Dictionary<String, Any>)
  188. case userFans(parameters:Dictionary<String, Any>)
  189. case userFollow(parameters:Dictionary<String, Any>)
  190. case userCancelFollow(parameters:Dictionary<String, Any>)
  191. case userFollowCheckStatus(parameters:Dictionary<String, Any>)
  192. case userMemberMessageIndex(parameters:Dictionary<String, Any>)
  193. case userMemberMessageList(parameters:Dictionary<String, Any>)
  194. case userMemberReadMessage(parameters:Dictionary<String, Any>)
  195. case userMemberSearchMember(parameters:Dictionary<String, Any>)
  196. case userMemberGetTotalBean(parameters:Dictionary<String, Any>)
  197. case userMobileAuthorizationLogin(parameters:Dictionary<String, Any>)
  198. }
  199. extension SwiftMoyaServiceUserApi: TargetType {
  200. public var baseURL: URL {
  201. switch self {
  202. case .userLogout,
  203. .userRefresh,
  204. .userWeiXinRegister,
  205. .userMobileRegister,
  206. .userMobileLogin,
  207. .userBindWeixin,
  208. .userBindMobile,
  209. .userchangeBindMobile,
  210. .userSetPassword,
  211. .userUnbindWeixin,
  212. .userIsBindWeixin,
  213. .userSelfAddressList,
  214. .userAddExpressAddress,
  215. .userAddressIsDefault,
  216. .userAddressDelete,
  217. .userExpreesContactsList,
  218. .userDefaultExpress,
  219. .userDefaultContact,
  220. .userSaveExpreesContacts,
  221. .userDelExpreesContacts,
  222. .userSetExpreesContactsDefault,
  223. .userAddSelfAddress,
  224. .userSetDeliverType,
  225. .userMemberUpdateGender,
  226. .userMemberDetail,
  227. .userMemberDetailUpDate,
  228. .userFollows,
  229. .userFans,
  230. .userFollow,
  231. .userCancelFollow,
  232. .userFollowCheckStatus,
  233. .userMemberMessageIndex,
  234. .userMemberMessageList,
  235. .userMemberReadMessage,
  236. .userMemberSearchMember,
  237. .userMemberGetTotalBean,
  238. .userMobileAuthorizationLogin
  239. :
  240. return URL(string: kApiDataPrefix())!
  241. }
  242. }
  243. public var path: String {
  244. switch self {
  245. case .userLogout:
  246. return kUserLogoutApi
  247. case .userRefresh:
  248. return kUserRefreshApi
  249. case .userWeiXinRegister:
  250. return kUserWeiXinRegisterApi
  251. case .userMobileRegister:
  252. return kUserMobileRegisterApi
  253. case .userMobileLogin:
  254. return kUserMobileLoginApi
  255. case .userBindWeixin:
  256. return kUserBindWeixinApi
  257. case .userBindMobile:
  258. return kUserBindMobileApi
  259. case .userchangeBindMobile:
  260. return kUserchangeBindMobileApi
  261. case .userSetPassword:
  262. return kUserSetPasswordApi
  263. case .userUnbindWeixin:
  264. return kUserUnbindWeixinApi
  265. case .userIsBindWeixin:
  266. return kUserIsBindWeixinApi
  267. case .userSelfAddressList:
  268. return kUserSelfAddressListApi
  269. case .userAddExpressAddress:
  270. return kUserAddExpressAddressApi
  271. case .userAddressIsDefault:
  272. return kUserAddressIsDefaultApi
  273. case .userAddressDelete:
  274. return kUserAddressDeleteApi
  275. case .userExpreesContactsList:
  276. return kUserExpreesContactsListApi
  277. case .userDefaultExpress:
  278. return kUserDefaultExpressApi
  279. case .userDefaultContact:
  280. return kUserDefaultContactApi
  281. case .userSaveExpreesContacts:
  282. return kUserSaveExpreesContactsApi
  283. case .userDelExpreesContacts:
  284. return kUserDelExpreesContactsApi
  285. case .userSetExpreesContactsDefault:
  286. return kUserSetExpreesContactsDefaultApi
  287. case .userAddSelfAddress:
  288. return kUserAddSelfAddressApi
  289. case .userSetDeliverType:
  290. return kUserSetDeliverTypeApi
  291. case .userMemberUpdateGender:
  292. return kUserMemberUpdateGenderApi
  293. case .userMemberDetail:
  294. return kUserMemberDetailApi
  295. case .userMemberDetailUpDate:
  296. return kUserMemberDetailUpDateApi
  297. case .userFollows:
  298. return kUserFollowsApi
  299. case .userFans:
  300. return kUserFansApi
  301. case .userFollow:
  302. return kUserFollowApi
  303. case .userCancelFollow:
  304. return kUserCancelFollowApi
  305. case .userFollowCheckStatus:
  306. return kUserFollowCheckStatusApi
  307. case .userMemberMessageIndex:
  308. return kUserMemberMessageIndexApi
  309. case .userMemberMessageList:
  310. return kUserMemberMessageListApi
  311. case .userMemberReadMessage:
  312. return kUserMemberReadMessageApi
  313. case .userMemberSearchMember:
  314. return kUserMemberSearchMemberApi
  315. case .userMemberGetTotalBean:
  316. return kUserMemberGetTotalBeanApi
  317. case .userMobileAuthorizationLogin:
  318. return kUserMobileAuthorizationLoginApi
  319. }
  320. }
  321. public var method: Moya.Method {
  322. switch self {
  323. case .userLogout,
  324. .userRefresh,
  325. .userWeiXinRegister,
  326. .userMobileRegister,
  327. .userMobileLogin,
  328. .userchangeBindMobile,
  329. .userBindWeixin,
  330. .userBindMobile,
  331. .userSetPassword,
  332. .userUnbindWeixin,
  333. .userIsBindWeixin,
  334. .userAddExpressAddress,
  335. .userSaveExpreesContacts,
  336. .userAddSelfAddress,
  337. .userFollow,
  338. .userMobileAuthorizationLogin
  339. :
  340. return .post
  341. case .userAddressIsDefault,
  342. .userSetDeliverType,
  343. .userSetExpreesContactsDefault,
  344. .userMemberUpdateGender,
  345. .userMemberDetailUpDate,
  346. .userCancelFollow,
  347. .userMemberReadMessage
  348. :
  349. return .put
  350. case .userSelfAddressList,
  351. .userExpreesContactsList,
  352. .userDefaultExpress,
  353. .userDefaultContact,
  354. .userMemberDetail,
  355. .userFollows,
  356. .userFans,
  357. .userFollowCheckStatus,
  358. .userMemberMessageIndex,
  359. .userMemberMessageList,
  360. .userMemberSearchMember,
  361. .userMemberGetTotalBean
  362. :
  363. return .get
  364. case .userAddressDelete,
  365. .userDelExpreesContacts
  366. :
  367. return .delete
  368. }
  369. }
  370. // MARK: - 请求任务事件(这里附带上参数)
  371. public var task: Task {
  372. switch self {
  373. case .userWeiXinRegister(let parameters),
  374. .userMobileRegister(let parameters),
  375. .userMobileLogin(let parameters),
  376. .userMobileAuthorizationLogin(let parameters)
  377. :
  378. return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
  379. case .userLogout(var parameters),
  380. .userRefresh(var parameters),
  381. .userBindWeixin(var parameters),
  382. .userBindMobile(var parameters),
  383. .userchangeBindMobile(var parameters),
  384. .userSetPassword(var parameters),
  385. .userUnbindWeixin(var parameters),
  386. .userIsBindWeixin(var parameters),
  387. .userSelfAddressList(var parameters),
  388. .userAddExpressAddress(var parameters),
  389. .userAddressIsDefault(var parameters),
  390. .userAddressDelete(var parameters),
  391. .userExpreesContactsList(var parameters),
  392. .userDefaultExpress(var parameters),
  393. .userDefaultContact(var parameters),
  394. .userSaveExpreesContacts(var parameters),
  395. .userDelExpreesContacts(var parameters),
  396. .userSetExpreesContactsDefault(var parameters),
  397. .userAddSelfAddress(var parameters),
  398. .userSetDeliverType(var parameters),
  399. .userMemberUpdateGender(var parameters),
  400. .userMemberDetail(var parameters),
  401. .userMemberDetailUpDate(var parameters),
  402. .userFollows(var parameters),
  403. .userFans(var parameters),
  404. .userFollow(var parameters),
  405. .userCancelFollow(var parameters),
  406. .userFollowCheckStatus(var parameters),
  407. .userMemberMessageIndex(var parameters),
  408. .userMemberMessageList(var parameters),
  409. .userMemberReadMessage(var parameters),
  410. .userMemberSearchMember(var parameters),
  411. .userMemberGetTotalBean(var parameters)
  412. :
  413. let sign = SwiftSign.shared().sign(signType:.AccessToken, parameters: parameters)
  414. parameters.updateValue(sign, forKey: "sign")
  415. return .requestParameters(parameters: parameters, encoding: URLEncoding.default)
  416. }
  417. }
  418. // MARK: - 是否执行Alamofire验证
  419. public var validate: Bool {
  420. return false
  421. }
  422. // MARK: - 这个就是做单元测试模拟的数据,只会在单元测试文件中有作用
  423. public var sampleData: Data {
  424. return "{}".data(using: String.Encoding.utf8)!
  425. }
  426. // MARK: - 请求头
  427. public var headers: [String : String]? {
  428. //同task,具体选择看后台 有application/x-www-form-urlencoded 、application/json
  429. switch self {
  430. case .userWeiXinRegister,
  431. .userMobileRegister,
  432. .userMobileLogin,
  433. .userMobileAuthorizationLogin
  434. :
  435. return (headerParameters(headerType: .moreHeader) as! [String : String])
  436. case .userBindWeixin,
  437. .userchangeBindMobile,
  438. .userSetPassword,
  439. .userUnbindWeixin,
  440. .userIsBindWeixin,
  441. .userSelfAddressList,
  442. .userAddExpressAddress,
  443. .userAddressIsDefault,
  444. .userAddressDelete,
  445. .userExpreesContactsList,
  446. .userDefaultExpress,
  447. .userDefaultContact,
  448. .userSaveExpreesContacts,
  449. .userDelExpreesContacts,
  450. .userSetExpreesContactsDefault,
  451. .userAddSelfAddress,
  452. .userSetDeliverType,
  453. .userMemberUpdateGender,
  454. .userMemberDetail,
  455. .userMemberDetailUpDate,
  456. .userFollows,
  457. .userFans,
  458. .userFollow,
  459. .userCancelFollow,
  460. .userFollowCheckStatus,
  461. .userMemberMessageIndex,
  462. .userMemberMessageList,
  463. .userMemberReadMessage,
  464. .userMemberSearchMember,
  465. .userMemberGetTotalBean
  466. :
  467. return (headerParameters(headerType: .tokenHeader) as! [String : String])
  468. case .userLogout,
  469. .userRefresh,
  470. .userBindMobile
  471. :
  472. return (headerParameters(headerType: .tokenMoreHeader) as! [String : String])
  473. }
  474. }
  475. }