ApiMacro.swift 4.4 KB

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