IHLightApi.swift 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. //
  2. // IHLightApi.swift
  3. // Inhealth
  4. //
  5. // Created by weclouds on 2019/12/9.
  6. // Copyright © 2019 weclouds. All rights reserved.
  7. //
  8. import UIKit
  9. import Moya
  10. import Alamofire
  11. let LightProvider = MoyaProvider<LightApi>(plugins: [NetworkLoggerPlugin(verbose: true, responseDataFormatter: JSONResponseDataFormatter),
  12. networkActivityPlugin])
  13. enum LightApi {
  14. //所有设备列表
  15. case app_dev_list(username:String,client_key:String,os:String,version:String,token:String,hotelId:String?, buildId:String?,floorId:String?,roomId:String?,devType:String,keywords:String?)
  16. //设备列表
  17. case lamp_light_list(username:String,client_key:String,os:String,version:String,token:String,hotelId:String?, buildId:String?,roomId:String?,page:Int,count:Int,type:String,keywords:String?)
  18. //添加编辑设备
  19. case lamp_save_light(username:String,client_key:String,os:String,version:String,token:String,lightId:String?,name:String,deviceId:String,floorId:String,roomId:String,type:String,image:String,model:String,gatewayId:String)
  20. //设备详情
  21. case lamp_light_info(username:String,client_key:String,os:String,version:String,token:String,lightId:String)
  22. //删除设备
  23. case lamp_del_light(username:String,client_key:String,os:String,version:String,token:String,lightId:String)
  24. //设备给调光调色温
  25. case lamp_lamp_cmd(username:String,client_key:String,os:String,version:String,token:String,lightId:String,light:Int,color:Int,colorR:Int,colorG:Int,colorB:String)
  26. //设备日志信息
  27. case lamp_lamp_report(username:String,client_key:String,os:String,version:String,token:String,lightId:String,type:String,dataType:String)
  28. //单独调光
  29. case lamp_lamp_light(username:String,client_key:String,os:String,version:String,token:String,lightId:String,light:Int)
  30. //单独调色温
  31. case lamp_lamp_color(username:String,client_key:String,os:String,version:String,token:String,lightId:String,color:Int)
  32. //单独设置颜色
  33. case lamp_lamp_color_rgb(username:String,client_key:String,os:String,version:String,token:String,lightId:String,colorR:Int,colorG:Int,colorB:Int)
  34. //开关灯
  35. case lamp_lamp_turn(username:String,client_key:String,os:String,version:String,token:String,lightId:String,status:String)
  36. //用电量统计信息】
  37. case home_energy_consumption(username:String,client_key:String,os:String,version:String,token:String,hotelId:String?,devId:String?,dateType:String,date:String?)
  38. //亮灯时间统计信息
  39. case home_lighting_use_schedule(username:String,client_key:String,os:String,version:String,token:String,hotelId:String?,devId:String?,dateType:String,date:String?)
  40. //获取学校的所有设备
  41. case school_light_list(username:String,client_key:String,os:String,version:String,token:String,hotelId:String?,buildId:String?,floorId:String?,roomId:String?,page:Int,count:Int,type:String,keywords:String?)
  42. //学校--添加编辑设备
  43. case school_save_light(username:String,client_key:String,os:String,version:String,token:String,lightId:String?,name:String,deviceId:String,floorId:String,roomId:String,image:String?,type:String,model:String?,gatewayId:String)
  44. //检查固件有没有升级
  45. case network_check_update(username:String,client_key:String,os:String,version:String,token:String,id:String,type:String)
  46. //检查固件有没有升级
  47. case network_update_fire(username:String,client_key:String,os:String,version:String,token:String,id:String,type:String,clientId:String)
  48. }
  49. extension LightApi: TargetType{
  50. var base :String {
  51. return moyaBase
  52. }
  53. var baseURL: URL {
  54. return URL(string:base)!
  55. }
  56. var path: String {
  57. switch self {
  58. case .lamp_light_list:
  59. return "lamp/light_list"
  60. case .lamp_save_light:
  61. return "lamp/save_light"
  62. case .lamp_light_info:
  63. return "lamp/light_info"
  64. case .lamp_del_light:
  65. return "lamp/del_light"
  66. case .lamp_lamp_cmd:
  67. return "lamp/lamp_cmd"
  68. case .lamp_lamp_report:
  69. return "lamp/lamp_report"
  70. case .lamp_lamp_light:
  71. return "lamp/lamp_light"
  72. case .lamp_lamp_color:
  73. return "lamp/lamp_color"
  74. case .lamp_lamp_color_rgb:
  75. return "lamp/lamp_color_rgb"
  76. case .lamp_lamp_turn:
  77. return "lamp/lamp_turn"
  78. case .app_dev_list:
  79. return "app/dev_list"
  80. case .home_energy_consumption:
  81. return "home/energy_consumption"
  82. case .home_lighting_use_schedule:
  83. return "home/lighting_use_schedule"
  84. case .school_light_list:
  85. return "school/light_list"
  86. case .school_save_light:
  87. return "school/save_light"
  88. case .network_check_update:
  89. return "network/check_update"
  90. case .network_update_fire:
  91. return "network/update_fire"
  92. }
  93. }
  94. var method: Moya.Method {
  95. return .post
  96. }
  97. var sampleData: Data {
  98. switch self {
  99. case .lamp_light_list:
  100. return stubbedResponse("lamp_light_list")
  101. case .lamp_save_light:
  102. return stubbedResponse("lamp_save_light")
  103. case .lamp_light_info:
  104. return stubbedResponse("lamp_light_info")
  105. case .lamp_del_light:
  106. return stubbedResponse("lamp_del_light")
  107. case .lamp_lamp_cmd:
  108. return stubbedResponse("lamp_lamp_cmd")
  109. case .lamp_lamp_report:
  110. return stubbedResponse("lamp_lamp_report")
  111. case .lamp_lamp_light:
  112. return stubbedResponse("lamp_lamp_light")
  113. case .lamp_lamp_color:
  114. return stubbedResponse("lamp_lamp_color")
  115. case .lamp_lamp_color_rgb:
  116. return stubbedResponse("lamplamp_color_rgb")
  117. case .lamp_lamp_turn:
  118. return stubbedResponse("lamp_lamp_turn")
  119. case .app_dev_list:
  120. return stubbedResponse("app_dev_list")
  121. case .home_energy_consumption:
  122. return stubbedResponse("home_energy_consumption")
  123. case .home_lighting_use_schedule:
  124. return stubbedResponse("home_lighting_use_schedule")
  125. case .school_light_list:
  126. return stubbedResponse("school_light_list")
  127. case .school_save_light:
  128. return stubbedResponse("school_save_light")
  129. case .network_check_update:
  130. return stubbedResponse("network_check_update")
  131. case .network_update_fire:
  132. return stubbedResponse("network_update_fire")
  133. }
  134. }
  135. var task: Task {
  136. switch self {
  137. case .lamp_light_list(let username, let client_key, let os, let version,let token ,let hotelId, let buildId, let roomId, let page, let count, let type, let keywords):
  138. var p = ["username" :username,
  139. "client_key":client_key,
  140. "os":os,
  141. "version":version ,
  142. "token":token,
  143. "page":page,
  144. "count":count,
  145. "type":type ] as [String : Any]
  146. if let keywords = keywords{
  147. p["keywords"] = keywords
  148. }
  149. if let hotelId = hotelId {
  150. p["hotelId"] = hotelId
  151. }
  152. if let buildId = buildId {
  153. p["buildId"] = buildId
  154. }
  155. if let roomId = roomId {
  156. p["roomId"] = roomId
  157. }
  158. return .requestParameters(parameters: p,
  159. encoding: URLEncoding.default)
  160. case .lamp_save_light(let username, let client_key, let os, let version,let token, let lightId, let name, let deviceId, let floorId, let roomId, let type,let image,let model,let gatewayId):
  161. var p = ["username" :username,
  162. "client_key":client_key,
  163. "os":os,
  164. "version":version ,
  165. "token":token,
  166. "name":name,
  167. "deviceId":deviceId,
  168. "floorId":floorId ,
  169. "roomId":roomId,
  170. "type":type,
  171. "image":image,
  172. "model":model,"gatewayId":gatewayId]
  173. if let lightId = lightId{
  174. p["lightId"] = lightId
  175. }
  176. return .requestParameters(parameters: p as [String : Any],
  177. encoding: URLEncoding.default)
  178. case .lamp_light_info(let username, let client_key, let os, let version,let token, let lightId):
  179. let p = ["username" :username,
  180. "client_key":client_key,
  181. "os":os,
  182. "version":version,
  183. "token":token,
  184. "lightId":lightId]
  185. return .requestParameters(parameters: p,
  186. encoding: URLEncoding.default)
  187. case .lamp_del_light(let username, let client_key, let os, let version,let token, let lightId):
  188. let p = ["username" :username,
  189. "client_key":client_key,
  190. "os":os,
  191. "version":version,
  192. "token":token,
  193. "lightId":lightId]
  194. return .requestParameters(parameters: p,
  195. encoding: URLEncoding.default)
  196. case .lamp_lamp_cmd(let username, let client_key, let os, let version,let token, let lightId, let light, let color, let colorR, let colorG, let colorB):
  197. let p = ["username" :username,
  198. "client_key":client_key,
  199. "os":os,
  200. "version":version,
  201. "token":token,
  202. "lightId":lightId,
  203. "light":light,
  204. "color":color,
  205. "colorR":colorR,
  206. "colorG":colorG,
  207. "colorB":colorB] as [String : Any]
  208. return .requestParameters(parameters: p,
  209. encoding: URLEncoding.default)
  210. case .lamp_lamp_report(let username, let client_key, let os, let version,let token, let lightId, let type, let dataType):
  211. let p = ["username" :username,
  212. "client_key":client_key,
  213. "os":os,
  214. "version":version,
  215. "token":token,
  216. "lightId":lightId,
  217. "type":type,
  218. "dataType":dataType]
  219. return .requestParameters(parameters: p,
  220. encoding: URLEncoding.default)
  221. case .lamp_lamp_light(let username, let client_key, let os, let version,let token, let lightId, let light):
  222. let p = ["username" :username,
  223. "client_key":client_key,
  224. "os":os,
  225. "version":version,
  226. "token":token,
  227. "lightId":lightId,
  228. "light":light] as [String : Any]
  229. return .requestParameters(parameters: p,
  230. encoding: URLEncoding.default)
  231. case .lamp_lamp_color(let username, let client_key, let os, let version,let token, let lightId, let color):
  232. let p = ["username" :username,
  233. "client_key":client_key,
  234. "os":os,
  235. "version":version,
  236. "token":token,
  237. "lightId":lightId,
  238. "color":color] as [String : Any]
  239. return .requestParameters(parameters: p,
  240. encoding: URLEncoding.default)
  241. case .lamp_lamp_color_rgb(let username, let client_key, let os, let version,let token, let lightId, let colorR, let colorG, let colorB):
  242. let p = ["username" :username,
  243. "client_key":client_key,
  244. "os":os,
  245. "version":version,
  246. "token":token,
  247. "lightId":lightId,
  248. "colorR":colorR,
  249. "colorG":colorG,
  250. "colorB":colorB] as [String : Any]
  251. return .requestParameters(parameters: p,
  252. encoding: URLEncoding.default)
  253. case .lamp_lamp_turn(let username, let client_key, let os, let version, let token, let lightId, let status):
  254. let p = ["username" :username,
  255. "client_key":client_key,
  256. "os":os,
  257. "version":version,
  258. "token":token,
  259. "lightId":lightId,
  260. "status":status]
  261. return .requestParameters(parameters: p,
  262. encoding: URLEncoding.default)
  263. case .app_dev_list(let username, let client_key, let os, let version, let token, let hotelId, let buildId, let floorId, let roomId, let devType,let keywords):
  264. var p = ["username" :username,
  265. "client_key":client_key,
  266. "os":os,
  267. "version":version ,
  268. "token":token,
  269. "devType":devType ] as [String : Any]
  270. if let floorId = floorId{
  271. p["floorId"] = floorId
  272. }
  273. if let hotelId = hotelId {
  274. p["hotelId"] = hotelId
  275. }
  276. if let buildId = buildId {
  277. p["buildId"] = buildId
  278. }
  279. if let roomId = roomId {
  280. p["roomId"] = roomId
  281. }
  282. if let keywords = keywords {
  283. p["keywords"] = keywords
  284. }
  285. return .requestParameters(parameters: p,
  286. encoding: URLEncoding.default)
  287. case .home_energy_consumption(let username, let client_key, let os, let version, let token, let hotelId, let devId, let dateType, let date):
  288. var p = ["username" :username,
  289. "client_key":client_key,
  290. "os":os,
  291. "version":version ,
  292. "token":token,
  293. "dateType":dateType ]
  294. if let hotelId = hotelId{
  295. p["hotelId"] = hotelId
  296. }
  297. if let devId = devId {
  298. p["devId"] = devId
  299. }
  300. if let date = date {
  301. p["date"] = date
  302. }
  303. return .requestParameters(parameters: p,
  304. encoding: URLEncoding.default)
  305. case .home_lighting_use_schedule(let username, let client_key, let os, let version, let token, let hotelId, let devId, let dateType, let date):
  306. var p = ["username" :username,
  307. "client_key":client_key,
  308. "os":os,
  309. "version":version ,
  310. "token":token,
  311. "dateType":dateType ]
  312. if let hotelId = hotelId{
  313. p["hotelId"] = hotelId
  314. }
  315. if let devId = devId {
  316. p["devId"] = devId
  317. }
  318. if let date = date {
  319. p["date"] = date
  320. }
  321. return .requestParameters(parameters: p,
  322. encoding: URLEncoding.default)
  323. case .school_light_list(username: let username, client_key: let client_key, os: let os, version: let version, token: let token, hotelId: let hotelId, buildId: let buildId, floorId: let floorId, roomId: let roomId, page: let page, count: let count, type: let type, keywords: let keywords):
  324. var p = ["username" :username,
  325. "client_key":client_key,
  326. "os":os,
  327. "version":version ,
  328. "token":token,
  329. "page":page,
  330. "count":count,
  331. "type":type] as [String : Any]
  332. if let hotelId = hotelId{
  333. p["hotelId"] = hotelId
  334. }
  335. if let buildId = buildId{
  336. p["buildId"] = buildId
  337. }
  338. if let floorId = floorId{
  339. p["floorId"] = floorId
  340. }
  341. if let roomId = roomId{
  342. p["roomId"] = roomId
  343. }
  344. if let keywords = keywords{
  345. p["keywords"] = keywords
  346. }
  347. return .requestParameters(parameters: p,
  348. encoding: URLEncoding.default)
  349. case .school_save_light(username: let username, client_key: let client_key, os: let os, version: let version, token: let token, lightId: let lightId, name: let name, deviceId: let deviceId, floorId: let floorId, roomId: let roomId, image: let image, type: let type, model: let model,gatewayId: let gatewayId):
  350. var p = ["username" :username,
  351. "client_key":client_key,
  352. "os":os,
  353. "version":version ,
  354. "token":token,
  355. "name":name,
  356. "deviceId":deviceId,
  357. "floorId":floorId,
  358. "roomId" : roomId,
  359. "type" : type,
  360. "gatewayId" : gatewayId]
  361. if let lightId = lightId{
  362. p["lightId"] = lightId
  363. }
  364. if let image = image{
  365. p["image"] = image
  366. }
  367. if let model = model{
  368. p["model"] = model
  369. }
  370. return .requestParameters(parameters: p,
  371. encoding: URLEncoding.default)
  372. case .network_check_update(username: let username, client_key: let client_key, os: let os, version: let version, token: let token, id: let id, type: let type):
  373. let p = ["username" :username,
  374. "client_key":client_key,
  375. "os":os,
  376. "version":version ,
  377. "token":token,
  378. "id":id,
  379. "type":type]
  380. return .requestParameters(parameters: p,
  381. encoding: URLEncoding.default)
  382. case .network_update_fire(username: let username, client_key: let client_key, os: let os, version: let version, token: let token, id: let id, type: let type, clientId: let clientId):
  383. let p = ["username" :username,
  384. "client_key":client_key,
  385. "os":os,
  386. "version":version ,
  387. "token":token,
  388. "id":id,
  389. "type":type,"clientId":clientId]
  390. return .requestParameters(parameters: p,
  391. encoding: URLEncoding.default)
  392. }
  393. }
  394. var headers: [String : String]? {
  395. return nil
  396. }
  397. }