ApiMacro.swift 4.3 KB

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