ApiMacro.swift 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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 kPersonalService = false
  10. let kDevelopSever = false
  11. let kBetaSever = true
  12. let kProductSever = false
  13. // MARK: - 数据服务器
  14. public func kApiDataPrefix() -> String {
  15. if kPersonalService /** 接口前缀-个人服务器*/ {
  16. return ""
  17. }else if kDevelopSever /** 接口前缀-开发服务器*/ {
  18. return "https://api.dev.caihongxingqiu.com"
  19. } else if kBetaSever /** 接口前缀-测试服务器*/{
  20. return "https://api.dev.caihongxingqiu.com/beta"
  21. }else if kProductSever /** 接口前缀-生产服务器*/ {
  22. return ""
  23. }else {
  24. return ""
  25. }
  26. }
  27. let kVirusPersonalService = false
  28. let kVirusDevelopSever = false
  29. let kVirusBetaSever = true
  30. let kVirusProductSever = false
  31. // MARK: - Virus
  32. public func kApiVirusPrefix() -> String {
  33. if kVirusPersonalService /** 接口前缀-个人服务器*/ {
  34. return ""
  35. }else if kVirusDevelopSever /** 接口前缀-开发服务器*/ {
  36. return "https://api.dev.caihongxingqiu.com/virus/v2"
  37. } else if kVirusBetaSever /** 接口前缀-测试服务器*/{
  38. return "https://api.dev.caihongxingqiu.com/beta/virus/v2"
  39. }else if kVirusProductSever /** 接口前缀-生产服务器*/ {
  40. return ""
  41. }else {
  42. return ""
  43. }
  44. }
  45. let kH5PersonalService = false
  46. let kH5DevelopSever = false
  47. let kH5BetaSever = true
  48. let kH5ProductSever = false
  49. // MARK: - H5
  50. public func kApiH5Prefix() -> String {
  51. if kH5PersonalService /** 接口前缀-个人服务器*/ {
  52. return ""
  53. }else if kH5DevelopSever /** 接口前缀-开发服务器*/ {
  54. return "http://h5.dev.caihongxingqiu.com"
  55. } else if kH5BetaSever /** 接口前缀-测试服务器*/{
  56. return "http://h5.beta.caihongxingqiu.com"
  57. }else if kH5ProductSever /** 接口前缀-生产服务器*/ {
  58. return ""
  59. }else {
  60. return ""
  61. }
  62. }
  63. /// 头部类型
  64. ///
  65. /// - defaultHeader: 默认
  66. /// - moreHeader: 更多
  67. /// - tokenHeader: 带token的头部
  68. /// - tokenMoreHeader: 带更多,token的头部
  69. public enum HeaderType {
  70. case defaultHeader
  71. case moreHeader
  72. case tokenHeader
  73. case tokenMoreHeader
  74. }
  75. public func headerParameters(headerType:HeaderType = .defaultHeader) -> Dictionary<String,Any> {
  76. var parameters = Dictionary<String,Any>()
  77. switch headerType {
  78. case .defaultHeader:
  79. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  80. break
  81. case .moreHeader:
  82. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  83. parameters = appInfoHeader(parameters: parameters)
  84. break
  85. case .tokenHeader:
  86. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  87. let token = UserModel.shared().getModel()?.token ?? ""
  88. parameters.updateValue(token, forKey: "Authorization")
  89. break
  90. case .tokenMoreHeader:
  91. parameters.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
  92. parameters = appInfoHeader(parameters: parameters)
  93. let token = UserModel.shared().getModel()?.token ?? ""
  94. parameters.updateValue(token, forKey: "Authorization")
  95. break
  96. }
  97. return parameters
  98. }
  99. public func appInfoHeader(parameters:Dictionary<String,Any>) -> Dictionary<String,Any> {
  100. var parameters = parameters
  101. parameters.updateValue(AppInfo.vendor, forKey: "vendor")
  102. parameters.updateValue(AppInfo.clientName.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlFragmentAllowed) as Any, forKey: "clientName")
  103. parameters.updateValue(AppInfo.clientVersion, forKey: "clientVersion")
  104. parameters.updateValue(AppInfo.osName, forKey: "osName")
  105. parameters.updateValue(AppInfo.osVersion, forKey: "osVersion")
  106. parameters.updateValue(String(describing: AppInfo.deviceName), forKey: "deviceName")
  107. parameters.updateValue(AppInfo.uuid, forKey: "deviceId")
  108. parameters.updateValue(AppInfo.ipAddress, forKey: "ip")
  109. return parameters
  110. }