IHLgoinAPi.swift 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. //
  2. // IHLgoinAPi.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/6.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import Moya
  10. import Alamofire
  11. //import RxSwift
  12. //import RxCocoa
  13. let LoginProvider = MoyaProvider<LoginApi>(plugins: [NetworkLoggerPlugin(verbose: true, responseDataFormatter: JSONResponseDataFormatter),networkActivityPlugin])
  14. func JSONResponseDataFormatter(_ data: Data) -> Data {
  15. do {
  16. let dataAsJSON = try JSONSerialization.jsonObject(with: data)
  17. let prettyData = try JSONSerialization.data(withJSONObject: dataAsJSON, options: .prettyPrinted)
  18. return prettyData
  19. } catch {
  20. return data //fallback to original data if it cant be serialized
  21. }
  22. }
  23. let networkActivityPlugin = NetworkActivityPlugin { (change,target) -> () in
  24. switch(change) {
  25. case .ended:
  26. DispatchQueue.main.async {
  27. UIApplication.shared.isNetworkActivityIndicatorVisible = false
  28. }
  29. case .began:
  30. DispatchQueue.main.async {
  31. UIApplication.shared.isNetworkActivityIndicatorVisible = true
  32. }
  33. }
  34. }
  35. enum LoginApi {
  36. case common_get_code_image
  37. case common_login(username:String,client_key:String,password:String,os:String,version:String,code:String?)
  38. case common_hotel_nav
  39. case common_build_nav(hotelId:String)
  40. case common_floor_nav(buildId:String)
  41. case common_room_nav(floorId:String)
  42. case common_get_user_role(username:String)
  43. case common_register_user(username:String,password:String,truePassword:String,name:String,age:String,roomId:String,avatar:String)
  44. case user_get_room_status(username:String,client_key:String,os:String,version:String,token:String)
  45. }
  46. extension LoginApi: TargetType{
  47. var base :String {
  48. return moyaBase
  49. }
  50. var baseURL: URL {
  51. return URL(string:base)!
  52. }
  53. var path: String {
  54. switch self {
  55. case .common_get_code_image:
  56. return "common/get_code_image"
  57. case .common_login:
  58. return "common/login"
  59. case .common_hotel_nav:
  60. return "common/hotel_nav"
  61. case .common_build_nav:
  62. return "common/build_nav"
  63. case .common_floor_nav:
  64. return "common/floor_nav"
  65. case .common_room_nav:
  66. return "common/room_nav"
  67. case .common_get_user_role:
  68. return "common/get_user_role"
  69. case .common_register_user:
  70. return "common/register_user"
  71. case .user_get_room_status:
  72. return "user/get_room_status"
  73. }
  74. }
  75. var method: Moya.Method {
  76. return .post
  77. }
  78. var sampleData: Data {
  79. switch self {
  80. case .common_get_code_image:
  81. return stubbedResponse("common_get_code_image")
  82. case .common_login:
  83. return stubbedResponse("common_login")
  84. case .common_hotel_nav:
  85. return stubbedResponse("common_login")
  86. case .common_build_nav:
  87. return stubbedResponse("common_login")
  88. case .common_floor_nav:
  89. return stubbedResponse("common_login")
  90. case .common_room_nav:
  91. return stubbedResponse("common_login")
  92. case .common_get_user_role:
  93. return stubbedResponse("common_get_user_role")
  94. case .common_register_user:
  95. return stubbedResponse("common_register_user")
  96. case .user_get_room_status:
  97. return stubbedResponse("user_get_room_status")
  98. }
  99. }
  100. var task: Task {
  101. switch self {
  102. case .common_get_code_image:
  103. return .requestParameters(parameters: [String:Any](),
  104. encoding: URLEncoding.default)
  105. case .common_login(let username,let client_key,let password,let os,let version,let code):
  106. var p = ["username" :username,
  107. "client_key":client_key,
  108. "password" : password,
  109. "os":os,
  110. "version":version ]
  111. if let code = code {
  112. p["code"] = code
  113. }
  114. return .requestParameters(parameters: p,
  115. encoding: URLEncoding.default)
  116. case .common_hotel_nav:
  117. let p = ["1":"1"]
  118. return .requestParameters(parameters: p,
  119. encoding: URLEncoding.default)
  120. case .common_build_nav(let hotelId):
  121. let p = ["hotelId":hotelId]
  122. return .requestParameters(parameters: p,
  123. encoding: URLEncoding.default)
  124. case .common_floor_nav(let buildId):
  125. let p = ["buildId":buildId]
  126. return .requestParameters(parameters: p,
  127. encoding: URLEncoding.default)
  128. case .common_room_nav(let floorId):
  129. let p = ["floorId":floorId]
  130. return .requestParameters(parameters: p,
  131. encoding: URLEncoding.default)
  132. case .common_get_user_role(let username):
  133. let p = ["username":username]
  134. return .requestParameters(parameters: p,
  135. encoding: URLEncoding.default)
  136. case .common_register_user(let username, let password, let truePassword, let name, let age, let roomId,let avatar):
  137. let p = ["username":username,"password":password,"truePassword":truePassword,"name":name,"age":age,"roomId":roomId,"avatar":avatar]
  138. return .requestParameters(parameters: p,
  139. encoding: URLEncoding.default)
  140. case .user_get_room_status(let username, let client_key, let os, let version, let token):
  141. let p = ["username" :username,
  142. "client_key":client_key,
  143. "os":os,
  144. "version":version,
  145. "token":token ]
  146. return .requestParameters(parameters: p,
  147. encoding: URLEncoding.default)
  148. }
  149. }
  150. var headers: [String : String]? {
  151. return nil
  152. }
  153. }