ApiMacro.swift 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. //
  2. // ApiMacro.swift
  3. // CreaditPayment
  4. //
  5. // Created by 南鑫林 on 2018/7/28.
  6. // Copyright © 2018年 南鑫林. All rights reserved.
  7. //
  8. import Foundation
  9. let kDevelopSever = false
  10. let kTestSever = true
  11. let kProductSever = false
  12. // MARK: - 数据服务器
  13. public func kApiDataPrefix() -> String {
  14. if kDevelopSever /** 接口前缀-开发服务器*/ {
  15. return "https://api.dev.caihongxingqiu.com"
  16. } else if kTestSever /** 接口前缀-测试服务器*/{
  17. return "https://api.dev.caihongxingqiu.com/beta"
  18. }else if kProductSever /** 接口前缀-生产服务器*/ {
  19. return ""
  20. }else {
  21. return ""
  22. }
  23. }
  24. // MARK: - 图片服务器
  25. public let kApiPicPrefix = ""
  26. /// 头部类型
  27. ///
  28. /// - defaultHeader: 默认
  29. /// - moreHeader: 更多
  30. /// - tokenHeader: 带token的头部
  31. /// - tokenMoreHeader: 带更多,token的头部
  32. public enum HeaderType {
  33. case defaultHeader
  34. case moreHeader
  35. case tokenHeader
  36. case tokenMoreHeader
  37. }
  38. public func headerParameters(headerType:HeaderType = .defaultHeader) -> Dictionary<String,Any> {
  39. var parameters = Dictionary<String,Any>()
  40. switch headerType {
  41. case .defaultHeader:
  42. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  43. break
  44. case .moreHeader:
  45. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  46. parameters = appInfoHeader(parameters: parameters)
  47. break
  48. case .tokenHeader:
  49. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  50. let token = UserModel.shared().getModel()?.token ?? ""
  51. parameters.updateValue(token, forKey: "Authorization")
  52. break
  53. case .tokenMoreHeader:
  54. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  55. parameters = appInfoHeader(parameters: parameters)
  56. let token = UserModel.shared().getModel()?.token ?? ""
  57. parameters.updateValue(token, forKey: "Authorization")
  58. break
  59. }
  60. return parameters
  61. }
  62. public func appInfoHeader(parameters:Dictionary<String,Any>) -> Dictionary<String,Any> {
  63. var parameters = parameters
  64. parameters.updateValue(AppInfo.vendor, forKey: "vendor")
  65. parameters.updateValue(AppInfo.clientName.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlFragmentAllowed) as Any, forKey: "clientName")
  66. parameters.updateValue(AppInfo.clientVersion, forKey: "clientVersion")
  67. parameters.updateValue(AppInfo.osName, forKey: "osName")
  68. parameters.updateValue(AppInfo.osVersion, forKey: "osVersion")
  69. parameters.updateValue(String(describing: AppInfo.deviceName), forKey: "deviceName")
  70. parameters.updateValue(AppInfo.uuid, forKey: "deviceId")
  71. parameters.updateValue(AppInfo.ipAddress, forKey: "ip")
  72. return parameters
  73. }