IHAreaHttpRequest.swift 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655
  1. //
  2. // IHAreaHttpRequest.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 SwiftyJSON
  10. //MARK:楼房下拉列表
  11. func g_room_build_navHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,hotelId:String?,success:successHandler?,fail:failHandler?){
  12. AreaProvider.request(AreaApi.room_build_nav(username: username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId)) { (result) in
  13. switch result{
  14. case let .success(response):
  15. do{
  16. let json = try JSON(data: response.data)
  17. log.debug(json)
  18. success?(json)
  19. }catch{
  20. print("")
  21. }
  22. case let .failure(error):
  23. fail?()
  24. guard (error as? CustomStringConvertible) != nil else {
  25. break
  26. }
  27. }
  28. }
  29. }
  30. //MARK:房间列表
  31. func g_room_room_listHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,buildId:String,keywords:String?,success:successHandler?,fail:failHandler?){
  32. log.debug("\n username=\(username) \n client_key=\(client_key) \n os=\(os) \n version=\(version) \n token=\(token)&buildId=\(buildId)")
  33. AreaProvider.request(AreaApi.room_room_list(username: username, client_key: client_key, os: os, version: version,token:token, buildId: buildId, keywords: keywords)) { (result) in
  34. switch result{
  35. case let .success(response):
  36. do{
  37. let json = try JSON(data: response.data)
  38. log.debug(json)
  39. success?(json)
  40. }catch{
  41. print("")
  42. }
  43. case let .failure(error):
  44. fail?()
  45. guard (error as? CustomStringConvertible) != nil else {
  46. break
  47. }
  48. }
  49. }
  50. }
  51. //MARK:添加酒店国家下拉列表
  52. func g_common_get_country_listHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,success:successHandler?,fail:failHandler?){
  53. AreaProvider.request(AreaApi.common_get_country(username: username, client_key: client_key, os: os, version: version,token: token)) { (result) in
  54. switch result{
  55. case let .success(response):
  56. do{
  57. let json = try JSON(data: response.data)
  58. log.debug(json)
  59. success?(json)
  60. }catch{
  61. print("")
  62. }
  63. case let .failure(error):
  64. fail?()
  65. guard (error as? CustomStringConvertible) != nil else {
  66. break
  67. }
  68. }
  69. }
  70. }
  71. //MARK:添加酒店省份下拉列表
  72. func g_common_get_provinceHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,countryId:String,success:successHandler?,fail:failHandler?){
  73. AreaProvider.request(AreaApi.common_get_province(username: username, client_key: client_key, os: os, version: version, token: token, countryId: countryId)) { (result) in
  74. switch result{
  75. case let .success(response):
  76. do{
  77. let json = try JSON(data: response.data)
  78. log.debug(json)
  79. success?(json)
  80. }catch{
  81. print("")
  82. }
  83. case let .failure(error):
  84. fail?()
  85. guard (error as? CustomStringConvertible) != nil else {
  86. break
  87. }
  88. }
  89. }
  90. }
  91. //MARK:添加酒店城市下拉列表
  92. func g_common_get_cityHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,provinceId:String,success:successHandler?,fail:failHandler?){
  93. AreaProvider.request(AreaApi.common_get_city(username: username, client_key: client_key, os: os, version: version,token:token, provinceId: provinceId)) { (result) in
  94. switch result{
  95. case let .success(response):
  96. do{
  97. let json = try JSON(data: response.data)
  98. log.debug(json)
  99. success?(json)
  100. }catch{
  101. print("")
  102. }
  103. case let .failure(error):
  104. fail?()
  105. guard (error as? CustomStringConvertible) != nil else {
  106. break
  107. }
  108. }
  109. }
  110. }
  111. //MARK:添加编辑酒店
  112. func g_area_save_hotelHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,cityId:String,name:String,hotelId:String?,success:successHandler?,fail:failHandler?){
  113. AreaProvider.request(AreaApi.area_save_hotel(username: username, client_key: client_key, os: os, version: version,token: token, cityId: cityId, name: name, hotelId: hotelId)) { (result) in
  114. switch result{
  115. case let .success(response):
  116. do{
  117. let json = try JSON(data: response.data)
  118. log.debug(json)
  119. success?(json)
  120. }catch{
  121. print("")
  122. }
  123. case let .failure(error):
  124. fail?()
  125. guard (error as? CustomStringConvertible) != nil else {
  126. break
  127. }
  128. }
  129. }
  130. }
  131. //MARK删除酒店
  132. func g_area_del_hotelHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,hotelId:String,success:successHandler?,fail:failHandler?){
  133. AreaProvider.request(AreaApi.area_del_hotel(username: username, client_key: client_key, os: os, version: version, token: token, hotelId: hotelId)) { (result) in
  134. switch result{
  135. case let .success(response):
  136. do{
  137. let json = try JSON(data: response.data)
  138. log.debug(json)
  139. success?(json)
  140. }catch{
  141. print("")
  142. }
  143. case let .failure(error):
  144. fail?()
  145. guard (error as? CustomStringConvertible) != nil else {
  146. break
  147. }
  148. }
  149. }
  150. }
  151. //MARK : 添加编辑楼房
  152. func g_area_save_buildHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,hotelId:String,name:String,floorCount:Int, buildId:String?,success:successHandler?,fail:failHandler?){
  153. AreaProvider.request(AreaApi.area_save_build(username: username, client_key: client_key, os: os, version: version,token: token, hotelId: hotelId, name: name, floorCount: floorCount, buildId: buildId)) { (result) in
  154. switch result{
  155. case let .success(response):
  156. do{
  157. let json = try JSON(data: response.data)
  158. log.debug(json)
  159. success?(json)
  160. }catch{
  161. print("")
  162. }
  163. case let .failure(error):
  164. fail?()
  165. guard (error as? CustomStringConvertible) != nil else {
  166. break
  167. }
  168. }
  169. }
  170. }
  171. //MARK : 删除楼房
  172. func g_area_del_buildHttpRequest(_ username:String, client_key:String,os:String,version:String, token:String,buildId:String,success:successHandler?,fail:failHandler?){
  173. AreaProvider.request(AreaApi.area_del_build(username: username, client_key: client_key, os: os, version: version,token: token, buildId: buildId)) { (result) in
  174. switch result{
  175. case let .success(response):
  176. do{
  177. let json = try JSON(data: response.data)
  178. log.debug(json)
  179. success?(json)
  180. }catch{
  181. print("")
  182. }
  183. case let .failure(error):
  184. fail?()
  185. guard (error as? CustomStringConvertible) != nil else {
  186. break
  187. }
  188. }
  189. }
  190. }
  191. //MARK :酒店详情
  192. func g_area_hotel_infoHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String, hotelId:String,success:successHandler?,fail:failHandler?){
  193. AreaProvider.request(AreaApi.area_hotel_info(username: username, client_key: client_key, os: os, version: version, token :token,hotelId: hotelId)) { (result) in
  194. switch result{
  195. case let .success(response):
  196. do{
  197. let json = try JSON(data: response.data)
  198. log.debug(json)
  199. success?(json)
  200. }catch{
  201. print("")
  202. }
  203. case let .failure(error):
  204. fail?()
  205. guard (error as? CustomStringConvertible) != nil else {
  206. break
  207. }
  208. }
  209. }
  210. }
  211. //MARK:楼房详情
  212. func g_area_build_infoHttpRequest(_ username:String, client_key:String,os:String,version:String, token:String, buildId:String,success:successHandler?,fail:failHandler?){
  213. AreaProvider.request(AreaApi.area_build_info(username: username, client_key: client_key, os: os, version: version, token: token, buildId: buildId)) { (result) in
  214. switch result{
  215. case let .success(response):
  216. do{
  217. let json = try JSON(data: response.data)
  218. log.debug(json)
  219. success?(json)
  220. }catch{
  221. print("")
  222. }
  223. case let .failure(error):
  224. fail?()
  225. guard (error as? CustomStringConvertible) != nil else {
  226. break
  227. }
  228. }
  229. }
  230. }
  231. //MARK:添加编辑房间
  232. func g_room_save_roomHttpRequest(_ username:String, client_key:String,os:String,version:String, token:String,buildId:String,floor:String,number:String,sn:String,image:String,roomId:String?,optionalDict:[[String:String]]?,success:successHandler?,fail:failHandler?){
  233. //log.debug("\n usernname = \(username),\n client_key = \(client_key),,\n os = \(os),\n version = \(version),\n token = \(token) ,\n buildId = \(buildId) ,\n floor = \(floor) ,\n number = \(number) ,\n sn = \(sn), \n image = \(image), \n optionalDict = \(optionalDict ?? <#default value#>)")
  234. AreaProvider.request(AreaApi.room_save_room(username: username, client_key: client_key, os: os, version: version, token: token, buildId: buildId, floor: floor, number: number, sn: sn, image: image, roomId: roomId, optionalDict: optionalDict)) { (result) in
  235. switch result{
  236. case let .success(response):
  237. do{
  238. let json = try JSON(data: response.data)
  239. log.debug(json)
  240. success?(json)
  241. }catch{
  242. print("")
  243. }
  244. case let .failure(error):
  245. fail?()
  246. guard (error as? CustomStringConvertible) != nil else {
  247. break
  248. }
  249. }
  250. }
  251. }
  252. //MARK:获取房间详细信息
  253. func g_room_room_infoHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,roomId:String,success:successHandler?,fail:failHandler?){
  254. AreaProvider.request(AreaApi.room_room_info(username: username, client_key: client_key, os: os, version: version, token: token, roomId: roomId)) { (result) in
  255. switch result{
  256. case let .success(response):
  257. do{
  258. let json = try JSON(data: response.data)
  259. log.debug(json)
  260. success?(json)
  261. }catch{
  262. print("")
  263. }
  264. case let .failure(error):
  265. fail?()
  266. guard (error as? CustomStringConvertible) != nil else {
  267. break
  268. }
  269. }
  270. }
  271. }
  272. //MARK:删除房间
  273. func g_room_del_roomHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,roomId:String,success:successHandler?,fail:failHandler?){
  274. AreaProvider.request(AreaApi.room_del_room(username: username, client_key: client_key, os: os, version: version, token: token, roomId: roomId)) { (result) in
  275. switch result{
  276. case let .success(response):
  277. do{
  278. let json = try JSON(data: response.data)
  279. log.debug(json)
  280. success?(json)
  281. }catch{
  282. print("")
  283. }
  284. case let .failure(error):
  285. fail?()
  286. guard (error as? CustomStringConvertible) != nil else {
  287. break
  288. }
  289. }
  290. }
  291. }
  292. //MARK : 楼层下拉列表
  293. func g_area_floor_navHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,buildId:String?,success:successHandler?,fail:failHandler?){
  294. AreaProvider.request(AreaApi.area_floor_nav(username: username, client_key: client_key, os: os, version: version, token: token, buildId: buildId)) { (result) in
  295. switch result{
  296. case let .success(response):
  297. do{
  298. let json = try JSON(data: response.data)
  299. log.debug(json)
  300. success?(json)
  301. }catch{
  302. print("")
  303. }
  304. case let .failure(error):
  305. fail?()
  306. guard (error as? CustomStringConvertible) != nil else {
  307. break
  308. }
  309. }
  310. }
  311. }
  312. //MARK :房间下拉列表
  313. func g_room_room_navHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,floorId:String,success:successHandler?,fail:failHandler?){
  314. AreaProvider.request(AreaApi.room_room_nav(username: username, client_key: client_key, os: os, version: version, token: token, floorId: floorId)) { (result) in
  315. switch result{
  316. case let .success(response):
  317. do{
  318. let json = try JSON(data: response.data)
  319. log.debug(json)
  320. success?(json)
  321. }catch{
  322. print("")
  323. }
  324. case let .failure(error):
  325. fail?()
  326. guard (error as? CustomStringConvertible) != nil else {
  327. break
  328. }
  329. }
  330. }
  331. }
  332. //MARK:获取楼层跟楼房概览图片
  333. func g_area_floor_build_imageHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,floorId:String,success:successHandler?,fail:failHandler?){
  334. AreaProvider.request(AreaApi.area_floor_build_image(username: username, client_key: client_key, os: os, version: version, token: token, floorId: floorId)) { (result) in
  335. switch result{
  336. case let .success(response):
  337. do{
  338. let json = try JSON(data: response.data)
  339. log.debug(json)
  340. success?(json)
  341. }catch{
  342. print("")
  343. }
  344. case let .failure(error):
  345. fail?()
  346. guard (error as? CustomStringConvertible) != nil else {
  347. break
  348. }
  349. }
  350. }
  351. }
  352. //MARK:房间指令
  353. func g_room_room_cmdHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,roomId:String,light:String,color:String,colorR:String,colorG:String,colorB:String,success:successHandler?,fail:failHandler?){
  354. AreaProvider.request(AreaApi.room_room_cmd(username: username, client_key: client_key, os: os, version: version, token: token, roomId: roomId, light: light, color: color, colorR: colorR, colorG: colorG, colorB: colorB)) { (result) in
  355. switch result{
  356. case let .success(response):
  357. do{
  358. let json = try JSON(data: response.data)
  359. log.debug(json)
  360. success?(json)
  361. }catch{
  362. print("")
  363. }
  364. case let .failure(error):
  365. fail?()
  366. guard (error as? CustomStringConvertible) != nil else {
  367. break
  368. }
  369. }
  370. }
  371. }
  372. //酒店/楼房二级下拉列表
  373. func g_area_hotel_listHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,cityId:String,success:successHandler?,fail:failHandler?){
  374. AreaProvider.request(AreaApi.area_hotel_list(username: username, client_key: client_key, os: os, version: version, token: token, cityId: cityId)) { (result) in
  375. switch result{
  376. case let .success(response):
  377. do{
  378. let json = try JSON(data: response.data)
  379. log.debug(json)
  380. success?(json)
  381. }catch{
  382. print("")
  383. }
  384. case let .failure(error):
  385. fail?()
  386. guard (error as? CustomStringConvertible) != nil else {
  387. break
  388. }
  389. }
  390. }
  391. }
  392. // 学校 - 获取房间设备
  393. func g_school_dev_listHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,roomId:String,success:successHandler?,fail:failHandler?){
  394. AreaProvider.request(AreaApi.school_dev_list(username: username, client_key: client_key, os: os, version: version, token: token, roomId: roomId)) { (result) in
  395. switch result{
  396. case let .success(response):
  397. do{
  398. let json = try JSON(data: response.data)
  399. log.debug("获取房间设备\(json)")
  400. success?(json)
  401. }catch{
  402. print("")
  403. }
  404. case let .failure(error):
  405. fail?()
  406. guard (error as? CustomStringConvertible) != nil else {
  407. break
  408. }
  409. }
  410. }
  411. }
  412. // 学校 - 更换设备的位置
  413. func g_school_charge_locationHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,infoList:[[String:String]],success:successHandler?,fail:failHandler?){
  414. AreaProvider.request(AreaApi.school_charge_location(username: username, client_key: client_key, os: os, version: version, token: token, infoList: infoList)) { (result) in
  415. switch result{
  416. case let .success(response):
  417. do{
  418. let json = try JSON(data: response.data)
  419. log.debug("添加/编辑设备\(json)")
  420. success?(json)
  421. }catch{
  422. print("")
  423. }
  424. case let .failure(error):
  425. fail?()
  426. guard (error as? CustomStringConvertible) != nil else {
  427. break
  428. }
  429. }
  430. }
  431. }
  432. // 学校 - 添加/编辑设备
  433. func g_school_save_lightHttpRequest(_ 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,success:successHandler?,fail:failHandler?){
  434. LightProvider.request(LightApi.school_save_light(username: username, client_key: client_key, os: os, version: version, token: token, lightId: lightId, name: name, deviceId: deviceId, floorId: floorId, roomId: roomId, image: image, type: type, model: model,gatewayId: gatewayId)) { (result) in
  435. switch result{
  436. case let .success(response):
  437. do{
  438. let json = try JSON(data: response.data)
  439. log.debug("添加/编辑设备\(json)")
  440. success?(json)
  441. }catch{
  442. print("")
  443. }
  444. case let .failure(error):
  445. fail?()
  446. guard (error as? CustomStringConvertible) != nil else {
  447. break
  448. }
  449. }
  450. }
  451. }
  452. // 学校 - 单个灯的开关
  453. func g_school_single_on_offHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,id :String,status : String, clientId : String,success:successHandler?,fail:failHandler?){
  454. AreaProvider.request(AreaApi.set_on_off(username: username, client_key: client_key, os: os, version: version, token: token, id: id, status: status, clientId: clientId)){(result) in
  455. switch result{
  456. case let .success(response):
  457. do{
  458. let json = try JSON(data: response.data)
  459. log.debug("单个灯的开关\(json)")
  460. success?(json)
  461. }catch{
  462. // print("单个灯的开关 - 返回出错 = \(MoyaError.jsonMapping(result))")
  463. log.debug("单个灯的开关")
  464. }
  465. case let .failure(error):
  466. fail?()
  467. guard (error as? CustomStringConvertible) != nil else {
  468. break
  469. }
  470. }
  471. }
  472. }
  473. // 学校 - 窗帘开关
  474. func g_school_set_curtainHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,id : String,status : String, clientId : String,success:successHandler?,fail:failHandler?){
  475. AreaProvider.request(AreaApi.school_set_curtain(username: username, client_key: client_key, os: os, version: version, token: token, id: id, status: status, clientId: clientId)) { (result) in
  476. switch result{
  477. case let .success(response):
  478. do{
  479. let json = try JSON(data: response.data)
  480. log.debug("窗帘开关\(json)")
  481. success?(json)
  482. }catch{
  483. print("窗帘开关 - 返回出错")
  484. }
  485. case let .failure(error):
  486. fail?()
  487. guard (error as? CustomStringConvertible) != nil else {
  488. break
  489. }
  490. }
  491. }
  492. }
  493. // 学校 - 色温
  494. func g_school_set_colorHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,id : String,color : String, clientId : String,success:successHandler?,fail:failHandler?){
  495. AreaProvider.request(AreaApi.school_set_color(username: username, client_key: client_key, os: os, version: version, token: token, id: id, color: color, clientId: clientId)) { (result) in
  496. switch result{
  497. case let .success(response):
  498. do{
  499. let json = try JSON(data: response.data)
  500. log.debug("窗帘开关\(json)")
  501. success?(json)
  502. }catch{
  503. print("")
  504. }
  505. case let .failure(error):
  506. fail?()
  507. guard (error as? CustomStringConvertible) != nil else {
  508. break
  509. }
  510. }
  511. }
  512. }
  513. // 学校 - 设备信息列表
  514. func g_school_light_listHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,hotelId : String,buildId : String, floorId : String,roomId : String,page : String,count : String,type : String,keywords : String,success:successHandler?,fail:failHandler?){
  515. AreaProvider.request(AreaApi.school_light_list(username: username, client_key: client_key, os: os, version: version, token: token, hotelId: token, buildId: token, floorId: floorId, roomId: roomId, page: page, count: count, type: type, keywords: keywords)) { (result) in
  516. switch result{
  517. case let .success(response):
  518. do{
  519. let json = try JSON(data: response.data)
  520. log.debug("设备信息列表\(json)")
  521. success?(json)
  522. }catch{
  523. print("")
  524. }
  525. case let .failure(error):
  526. fail?()
  527. guard (error as? CustomStringConvertible) != nil else {
  528. break
  529. }
  530. }
  531. }
  532. }
  533. // 学校 - 删除设备
  534. func g_school_del_lightHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,lightId : String,clientId : String,success:successHandler?,fail:failHandler?){
  535. AreaProvider.request(AreaApi.school_del_light(username: username, client_key: client_key, os: os, version: os, token: token, lightId: lightId, clientId: clientId)) { (result) in
  536. switch result{
  537. case let .success(response):
  538. do{
  539. let json = try JSON(data: response.data)
  540. log.debug("删除设备\(json)")
  541. success?(json)
  542. }catch{
  543. print("")
  544. }
  545. case let .failure(error):
  546. fail?()
  547. guard (error as? CustomStringConvertible) != nil else {
  548. break
  549. }
  550. }
  551. }
  552. }
  553. // 学校 - 设置亮度值
  554. func g_school_set_lightHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,id : String,light : String,clientId : String,success:successHandler?,fail:failHandler?){
  555. AreaProvider.request(AreaApi.school_set_light(username: username, client_key: client_key, os: os, version: version, token: token, id: id, light: light, clientId: clientId)) { (result) in
  556. switch result{
  557. case let .success(response):
  558. do{
  559. let json = try JSON(data: response.data)
  560. log.debug("设置亮度值\(json)")
  561. success?(json)
  562. }catch{
  563. print("设置亮度值异常")
  564. }
  565. case let .failure(error):
  566. fail?()
  567. guard (error as? CustomStringConvertible) != nil else {
  568. break
  569. }
  570. }
  571. }
  572. }
  573. // 学校 - 全部开关灯
  574. func g_school_set_offHttpRequest(_ username:String, client_key:String,os:String,version:String,token:String,roomId : String,type : String,clientId : String,success:successHandler?,fail:failHandler?){
  575. AreaProvider.request(AreaApi.charge_mode(username: username, client_key: client_key, os: os, version: version, token: token, roomId: roomId, type: type, clientId: clientId)) { (result) in
  576. switch result{
  577. case let .success(response):
  578. do{
  579. let json = try JSON(data: response.data)
  580. log.debug("开关灯\(json)")
  581. success?(json)
  582. }catch{
  583. print("")
  584. }
  585. case let .failure(error):
  586. fail?()
  587. guard (error as? CustomStringConvertible) != nil else {
  588. break
  589. }
  590. }
  591. }
  592. }