You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3040 lines
118 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. //
  2. // RestApiManager.swift
  3. // GMERemittance
  4. //
  5. // Created by Sujal on 12/5/17.
  6. // Copyright © 2017 Gobal Money Express Co. Ltd. All rights reserved.
  7. //
  8. import Foundation
  9. import Alamofire
  10. import SwiftyJSON
  11. import ObjectMapper
  12. enum ApiResult {
  13. case success(JSON)
  14. case failure(JSON)
  15. case updateAccessCode()
  16. case logOutUser()
  17. case timeOut()
  18. }
  19. class RestApiMananger {
  20. let manager: SessionManager
  21. static let sharedInstance = RestApiMananger()
  22. init() {
  23. self.manager = Alamofire.SessionManager.default
  24. manager.session.configuration.timeoutIntervalForRequest = 1000
  25. manager.session.configuration.timeoutIntervalForResource = 1000
  26. }
  27. func getUUID() -> String {
  28. let uuid = UserDefaults.standard.object(forKey: AppConstants.uuid) as? String
  29. if uuid != nil {
  30. return uuid!
  31. } else {
  32. let uuid = UUID().uuidString
  33. UserDefaults.standard.set(uuid, forKey: AppConstants.uuid)
  34. return uuid
  35. }
  36. }
  37. func getContentHeaderBeforeLogin() -> [String: String] {
  38. return ["Authorization": "Basic " + ("172017F9EC11222E8107142733:QRK2UM0Q" +
  39. ":" + getUUID()).toBase64(),
  40. "Content-Type": "application/json"]
  41. }
  42. func getContentHeaderAfterLogin() -> [String: String] {
  43. let accessCode = UserDefaults.standard.object(forKey: "com.gmeremit.accessCode") as? String
  44. if accessCode != nil {
  45. return ["Authorization": "Basic " + accessCode!,
  46. "Content-Type": "application/json"]
  47. } else {
  48. //Just in case access code becomes nil, use some old access code so that the user gets logged out instead of gettting crash
  49. return ["Authorization": "Basic MDQ4QUNENEYtMzkzQy00MjdBLTk1QjEtQkU4RTI2RTA4OUFFOjFhNjg2MGQ1LWIzZTgtNGUzMy05NGNhLThkZTA0YTQ5OTc0Mw==",
  50. "Content-Type": "application/json"]
  51. }
  52. }
  53. // ccr
  54. // added failure for delete operation. check if code is 204. if show show successfull message even in error
  55. func request<T: Mappable>(method: HTTPMethod, url: String, params: [String: Any]?, encoding: ParameterEncoding = JSONEncoding.default, needsAuthorization: Bool = true, success: @escaping (T) -> (), failure: @escaping (Error) -> ()) {
  56. if NetworkReachabilityManager()?.isReachable ?? false {
  57. let header = needsAuthorization ? getContentHeaderAfterLogin() : getContentHeaderBeforeLogin()
  58. manager.request(
  59. url,
  60. method: method,
  61. parameters: params,
  62. encoding: encoding,
  63. headers: header
  64. ).handle(success: success, failure: failure)
  65. }else {
  66. let error = NSError.init(domain: "NETWORK_REACHABILITY_DOMAIN", code: 0, userInfo: [NSLocalizedDescriptionKey : "No Internet connection found. 
Check your connection."])
  67. failure(error)
  68. }
  69. }
  70. // ccr
  71. //Signing up a new user
  72. func registerUser(userId: String, password: String, completion: @escaping (ApiResult) -> Void) {
  73. manager.request(
  74. URL(string: UrlManager.sharedInstance.getSignupURL())!,
  75. method: .post,
  76. parameters: ["userId": userId, "password" : password],
  77. encoding: JSONEncoding.default,
  78. headers: getContentHeaderBeforeLogin()
  79. ).responseJSON { (response) -> Void in
  80. if let error = response.result.error {
  81. if error._code == NSURLErrorTimedOut {
  82. completion(.timeOut())
  83. }
  84. }
  85. if response.result.isFailure{
  86. completion(.timeOut())
  87. }
  88. if response.response?.statusCode == nil {
  89. return
  90. }
  91. guard (response.response?.statusCode == 200) else {
  92. completion(.failure(JSON(response.data!)))
  93. return
  94. }
  95. completion(.success(JSON(response.data!)))
  96. }
  97. }
  98. //Verification of 4 digit code for
  99. func authenticateUser(code: String, userId: String, completion: @escaping (ApiResult) -> Void) {
  100. manager.request(
  101. URL(string: UrlManager.sharedInstance.getCodeVerificationURL(userId: userId))!,
  102. method: .post,
  103. parameters: ["verificationcode": code, "phoneOs": "ios"],
  104. encoding: JSONEncoding.default,
  105. headers: getContentHeaderBeforeLogin()
  106. ).responseJSON { (response) -> Void in
  107. if let error = response.result.error {
  108. if error._code == NSURLErrorTimedOut {
  109. completion(.timeOut())
  110. }
  111. }
  112. if response.result.isFailure{
  113. completion(.timeOut())
  114. }
  115. if response.response?.statusCode == nil {
  116. return
  117. }
  118. guard (response.response?.statusCode == 204) else { //initially 204
  119. if response.response?.statusCode == 401 {
  120. completion(.updateAccessCode())
  121. } else {
  122. completion(.failure(JSON(response.data!)))
  123. }
  124. return
  125. }
  126. completion(.success(JSON.null))
  127. }
  128. }
  129. //Requesting another access code
  130. func requestAnotherCode (type: String, userId: String, completion: @escaping (ApiResult) -> Void) {
  131. var param: [String: String]?
  132. switch type {
  133. case "device":
  134. param = ["codeType":"dvc"]
  135. case "password":
  136. param = ["codeType":"prc"]
  137. default:
  138. param = nil
  139. }
  140. manager.request(
  141. URL(string: UrlManager.sharedInstance.getRequestAnotherCodeURL(userId: userId))!,
  142. method: .post,
  143. parameters: param!,
  144. encoding: JSONEncoding.default,
  145. headers: getContentHeaderBeforeLogin()
  146. ).responseJSON { (response) -> Void in
  147. if let error = response.result.error {
  148. if error._code == NSURLErrorTimedOut {
  149. completion(.timeOut())
  150. }
  151. }
  152. if response.result.isFailure{
  153. completion(.timeOut())
  154. }
  155. if response.response?.statusCode == nil {
  156. return
  157. }
  158. guard (response.response?.statusCode == 200) else {
  159. if response.response?.statusCode == 401 {
  160. completion(.updateAccessCode())
  161. }else{
  162. completion(.failure(JSON(response.data!)))
  163. }
  164. return
  165. }
  166. completion(.success(JSON(response.data!)))
  167. }
  168. }
  169. //Logging in user
  170. func signInUser(userId: String, password: String, completion: @escaping (ApiResult) -> Void) {
  171. manager .request(
  172. URL(string: UrlManager.sharedInstance.getLogInURL())!,
  173. method: .post,
  174. parameters: ["userId": userId, "password": password],
  175. encoding: JSONEncoding.default,
  176. headers: getContentHeaderBeforeLogin()
  177. ).responseJSON { (response) -> Void in
  178. if let error = response.result.error {
  179. if error._code == NSURLErrorTimedOut {
  180. completion(.timeOut())
  181. }
  182. }
  183. if response.result.isFailure{
  184. completion(.timeOut())
  185. }
  186. if response.response?.statusCode == nil {
  187. return
  188. }
  189. guard (response.response?.statusCode == 200) else {
  190. completion(.failure(JSON(response.data!)))
  191. return
  192. }
  193. completion(.success(JSON(response.data!)))
  194. }
  195. }
  196. //Checking user verification for password reset process, 1 of 3
  197. func isVerifiedUser(userId: String, completion: @escaping (ApiResult) -> Void) {
  198. manager.request(
  199. URL(string: UrlManager.sharedInstance.getUserVerificationURLforPasswordReset())!,
  200. method: .post,
  201. parameters: ["userId": userId],
  202. encoding: JSONEncoding.default,
  203. headers: getContentHeaderBeforeLogin()
  204. ).responseJSON { (response) -> Void in
  205. if let error = response.result.error {
  206. if error._code == NSURLErrorTimedOut {
  207. completion(.timeOut())
  208. }
  209. }
  210. if response.result.isFailure{
  211. completion(.timeOut())
  212. }
  213. if response.response?.statusCode == nil {
  214. return
  215. }
  216. guard (response.response?.statusCode == 200) else {
  217. if response.response?.statusCode == 401 {
  218. completion(.updateAccessCode())
  219. }else{
  220. completion(.failure(JSON(response.data!)))
  221. }
  222. return
  223. }
  224. completion(.success(JSON(response.data!)))
  225. }
  226. }
  227. func submitUserDOB(userId: String, userDOB: String, completion: @escaping (ApiResult) -> Void) {
  228. manager.request(
  229. URL(string: UrlManager.sharedInstance.getDOBVerificationURLforPasswordReset(userId: userId))!,
  230. method: .post,
  231. parameters: ["userId": userId, "answer": userDOB],
  232. encoding: JSONEncoding.default,
  233. headers: getContentHeaderBeforeLogin()
  234. ).responseJSON { (response) -> Void in
  235. if let error = response.result.error {
  236. if error._code == NSURLErrorTimedOut {
  237. completion(.timeOut())
  238. }
  239. }
  240. if response.result.isFailure{
  241. completion(.timeOut())
  242. }
  243. if response.response?.statusCode == nil {
  244. return
  245. }
  246. guard (response.response?.statusCode == 200) else {
  247. if response.response?.statusCode == 401 {
  248. completion(.updateAccessCode())
  249. } else {
  250. completion(.failure(JSON(response.data!)))
  251. }
  252. return
  253. }
  254. completion(.success(JSON(response.data!)))
  255. }
  256. }
  257. //Getting 4 digit code for password reset, 3 of 3
  258. func reAuthenticateUser(code: String, userId: String, completion: @escaping (ApiResult) -> Void) {
  259. manager.request(
  260. URL(string: UrlManager.sharedInstance.getResetCodeValidationURL(userId: userId))!,
  261. method: .post,
  262. parameters: ["forgetCode": code, "phoneOs": "ios"],
  263. encoding: JSONEncoding.default,
  264. headers: getContentHeaderBeforeLogin()
  265. ).responseJSON { (response) -> Void in
  266. if let error = response.result.error {
  267. if error._code == NSURLErrorTimedOut {
  268. completion(.timeOut())
  269. }
  270. }
  271. if response.result.isFailure{
  272. completion(.timeOut())
  273. }
  274. if response.response?.statusCode == nil {
  275. return
  276. }
  277. guard (response.response?.statusCode == 200) else {
  278. if response.response?.statusCode == 401 {
  279. completion(.updateAccessCode())
  280. }else{
  281. completion(.failure(JSON(response.data!)))
  282. }
  283. return
  284. }
  285. completion(.success(JSON(response.data!)))
  286. }
  287. }
  288. //Resetting password
  289. func resetPassword(userId: String, password: String, completion: @escaping (ApiResult) -> Void) {
  290. manager.request(
  291. URL(string: UrlManager.sharedInstance.getPasswordUpdateURL(userId: userId))!,
  292. method: .patch,
  293. parameters: ["password": password],
  294. encoding: JSONEncoding.default,
  295. headers: getContentHeaderBeforeLogin()
  296. ).responseJSON { (response) -> Void in
  297. if let error = response.result.error {
  298. if error._code == NSURLErrorTimedOut {
  299. completion(.timeOut())
  300. }
  301. }
  302. if response.result.isFailure{
  303. completion(.timeOut())
  304. }
  305. if response.response?.statusCode == nil {
  306. return
  307. }
  308. guard (response.response?.statusCode == 200) else {
  309. if response.response?.statusCode == 401 {
  310. completion(.updateAccessCode())
  311. }else{
  312. completion(.failure(JSON(response.data!)))
  313. }
  314. return
  315. }
  316. completion(.success(JSON(response.data!)))
  317. }
  318. }
  319. // Getting recipients as per pagination
  320. func fetchRecipientListThroughPagination(userId: String, page: Int, size: Int, completion: @escaping (ApiResult) -> Void){
  321. manager.request(
  322. URL(string: UrlManager.sharedInstance.getRecipientListURLForPagination())!,
  323. method: .get,
  324. parameters: ["userId":userId,"size":size,"page":page],
  325. encoding: URLEncoding.queryString,
  326. headers: getContentHeaderAfterLogin()
  327. ).responseJSON { (response) -> Void in
  328. let error = response.result.error
  329. if error?._code == NSURLErrorTimedOut {
  330. completion(.timeOut())
  331. }
  332. if response.result.isFailure{
  333. completion(.timeOut())
  334. }
  335. if response.response?.statusCode == nil {
  336. completion(.timeOut())
  337. }
  338. guard (response.response?.statusCode == 200) else {
  339. if response.response?.statusCode == 401{
  340. completion(.updateAccessCode())
  341. } else if response.response?.statusCode == 403 {
  342. completion(.logOutUser())
  343. } else {
  344. completion(.failure(JSON(response.data!)))
  345. }
  346. return
  347. }
  348. completion(.success(JSON(response.data!)))
  349. }
  350. }
  351. //Creating a new recipient
  352. func createNewRecipient(recipientDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  353. manager.request(
  354. URL(string: UrlManager.sharedInstance.getNewRecipientURL())!,
  355. method: .post,
  356. parameters: recipientDetails,
  357. encoding: JSONEncoding.default,
  358. headers: getContentHeaderAfterLogin()
  359. ).responseJSON { (response) -> Void in
  360. let error = response.result.error
  361. if error?._code == NSURLErrorTimedOut {
  362. completion(.timeOut())
  363. }
  364. if response.result.isFailure{
  365. completion(.timeOut())
  366. }
  367. if response.response?.statusCode == nil {
  368. completion(.timeOut())
  369. }
  370. guard (response.response?.statusCode == 200) else {
  371. if response.response?.statusCode == 401{
  372. completion(.updateAccessCode())
  373. } else if response.response?.statusCode == 403 {
  374. completion(.logOutUser())
  375. } else {
  376. completion(.failure(JSON(response.data!)))
  377. }
  378. return
  379. }
  380. completion(.success(JSON(response.data!)))
  381. }
  382. }
  383. //Updating a recipient
  384. func updateRecipient(recipientId: String, recipientDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  385. manager.request(
  386. URL(string: UrlManager.sharedInstance.getUpdateRecipientURL(recipientId: recipientId))!,
  387. method: .patch,
  388. parameters: recipientDetails,
  389. encoding: JSONEncoding.default,
  390. headers: getContentHeaderAfterLogin()
  391. ).responseJSON { (response) -> Void in
  392. let error = response.result.error
  393. if error?._code == NSURLErrorTimedOut {
  394. completion(.timeOut())
  395. }
  396. if response.result.isFailure{
  397. completion(.timeOut())
  398. }
  399. if response.response?.statusCode == nil {
  400. completion(.timeOut())
  401. }
  402. guard (response.response?.statusCode == 200) else {
  403. if response.response?.statusCode == 401{
  404. completion(.updateAccessCode())
  405. } else if response.response?.statusCode == 403 {
  406. completion(.logOutUser())
  407. } else {
  408. completion(.failure(JSON(response.data!)))
  409. }
  410. return
  411. }
  412. completion(.success(JSON(response.data!)))
  413. }
  414. }
  415. //Removing an existing recipient
  416. func deleteRecipient(recipientId: String, completion: @escaping (ApiResult) -> Void) {
  417. manager.request(
  418. URL(string: UrlManager.sharedInstance.getDeleteRecipientURL(recipientId: recipientId))!,
  419. method: .delete,
  420. parameters: nil,
  421. encoding: JSONEncoding.default,
  422. headers: getContentHeaderAfterLogin()
  423. ).responseJSON { (response) -> Void in
  424. let error = response.result.error
  425. if error?._code == NSURLErrorTimedOut {
  426. completion(.timeOut())
  427. }
  428. if response.result.isFailure{
  429. completion(.timeOut())
  430. }
  431. if response.response?.statusCode == nil {
  432. completion(.timeOut())
  433. }
  434. guard (response.response?.statusCode == 204) else {
  435. if response.response?.statusCode == 401{
  436. completion(.updateAccessCode())
  437. } else if response.response?.statusCode == 403 {
  438. completion(.logOutUser())
  439. } else {
  440. completion(.failure(JSON(response.data!)))
  441. }
  442. return
  443. }
  444. completion(.success(JSON(response.data!)))
  445. }
  446. }
  447. func updateAccessCode(userId: String,password:String,completion: @escaping (String) -> Void) {
  448. Alamofire.request(
  449. URL(string: UrlManager.sharedInstance.getLogInURL())!,
  450. method: .post,
  451. parameters: ["userId": userId, "password": password],
  452. encoding: JSONEncoding.default,
  453. headers: getContentHeaderBeforeLogin()
  454. ).responseJSON { (response) -> Void in
  455. if response.response?.statusCode == nil {
  456. return
  457. }
  458. guard (response.response?.statusCode == 200) else {
  459. completion("Error")
  460. return
  461. }
  462. var json = JSON(response.data!)
  463. completion(json["accessCode"].stringValue)
  464. }
  465. }
  466. /* Recipient Model */
  467. //Getting transaction Information on send money and wallet
  468. func getTransactionInfo(param: [String: String],completion: @escaping (ApiResult) -> Void) {
  469. manager.request(
  470. URL(string: UrlManager.sharedInstance.getTransactionInformationURL())!,
  471. method: .get,
  472. parameters: param,
  473. encoding: URLEncoding.queryString,
  474. headers: getContentHeaderAfterLogin()
  475. ).responseJSON { (response) -> Void in
  476. let error = response.result.error
  477. if error?._code == NSURLErrorTimedOut {
  478. completion(.timeOut())
  479. }
  480. if response.result.isFailure{
  481. completion(.timeOut())
  482. }
  483. if response.response?.statusCode == nil {
  484. return
  485. }
  486. guard (response.response?.statusCode == 200) else {
  487. if response.response?.statusCode == 401{
  488. completion(.updateAccessCode())
  489. } else if response.response?.statusCode == 403 {
  490. completion(.logOutUser())
  491. } else {
  492. completion(.failure(JSON(response.data!)))
  493. }
  494. return
  495. }
  496. completion(.success(JSON(response.data!)))
  497. }
  498. }
  499. func getCurrency(param: [String: String],completion: @escaping (ApiResult) -> Void) {
  500. manager.request(
  501. URL(string: UrlManager.sharedInstance.getCurrencyURL())!,
  502. method: .get,
  503. parameters: param,
  504. encoding: URLEncoding.queryString,
  505. headers: getContentHeaderAfterLogin()
  506. ).responseJSON { (response) -> Void in
  507. let error = response.result.error
  508. if error?._code == NSURLErrorTimedOut {
  509. completion(.timeOut())
  510. }
  511. if response.result.isFailure{
  512. completion(.timeOut())
  513. }
  514. if response.response?.statusCode == nil {
  515. return
  516. }
  517. guard (response.response?.statusCode == 200) else {
  518. if response.response?.statusCode == 401{
  519. completion(.updateAccessCode())
  520. } else if response.response?.statusCode == 403 {
  521. completion(.logOutUser())
  522. } else {
  523. completion(.failure(JSON(response.data!)))
  524. }
  525. return
  526. }
  527. completion(.success(JSON(response.data!)))
  528. }
  529. }
  530. //Recharging mobile
  531. func rechargeMobile(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  532. manager.request(
  533. URL(string: UrlManager.sharedInstance.getRechargeURL())!,
  534. method: .post,
  535. parameters: rechargeDetails,
  536. encoding: JSONEncoding.default,
  537. headers: getContentHeaderAfterLogin()
  538. ).responseJSON { (response) -> Void in
  539. if let error = response.result.error {
  540. if error._code == NSURLErrorTimedOut {
  541. completion(.timeOut())
  542. }
  543. }
  544. if response.result.isFailure{
  545. completion(.timeOut())
  546. }
  547. if response.response?.statusCode == nil {
  548. return
  549. }
  550. guard (response.response?.statusCode == 200) else {
  551. if response.response?.statusCode == 401{
  552. completion(.updateAccessCode())
  553. } else if response.response?.statusCode == 403 {
  554. completion(.logOutUser())
  555. } else {
  556. completion(.failure(JSON(response.data!)))
  557. }
  558. return
  559. }
  560. completion(.success(JSON(response.data!)))
  561. }
  562. }
  563. //Recharging amounts for mobile recharge
  564. func amountsForMobileRecharge(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  565. manager.request(
  566. URL(string: UrlManager.sharedInstance.getURLForMobileRechargeAmount())!,
  567. method: .get,
  568. parameters: rechargeDetails,
  569. encoding: URLEncoding.queryString,
  570. headers: getContentHeaderAfterLogin()
  571. ).responseJSON { (response) -> Void in
  572. if let error = response.result.error {
  573. if error._code == NSURLErrorTimedOut {
  574. completion(.timeOut())
  575. }
  576. }
  577. if response.result.isFailure{
  578. completion(.timeOut())
  579. }
  580. if response.response?.statusCode == nil {
  581. return
  582. }
  583. guard (response.response?.statusCode == 200) else {
  584. if response.response?.statusCode == 401{
  585. completion(.updateAccessCode())
  586. } else if response.response?.statusCode == 403 {
  587. completion(.logOutUser())
  588. } else {
  589. completion(.failure(JSON(response.data!)))
  590. }
  591. return
  592. }
  593. completion(.success(JSON(response.data!)))
  594. }
  595. }
  596. func callMobileOperator(rechargeDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  597. manager.request(
  598. URL(string: UrlManager.sharedInstance.getMobileOperator())!,
  599. method: .get,
  600. parameters: rechargeDetails,
  601. encoding: URLEncoding.queryString,
  602. headers: getContentHeaderAfterLogin()
  603. ).responseJSON { (response) -> Void in
  604. if let error = response.result.error {
  605. if error._code == NSURLErrorTimedOut {
  606. completion(.timeOut())
  607. }
  608. }
  609. if response.result.isFailure{
  610. completion(.timeOut())
  611. }
  612. if response.response?.statusCode == nil {
  613. return
  614. }
  615. guard (response.response?.statusCode == 200) else {
  616. if response.response?.statusCode == 401{
  617. completion(.updateAccessCode())
  618. } else if response.response?.statusCode == 403 {
  619. completion(.logOutUser())
  620. } else {
  621. completion(.failure(JSON(response.data!)))
  622. }
  623. return
  624. }
  625. completion(.success(JSON(response.data!)))
  626. }
  627. }
  628. //Getting Bank Details
  629. func getBankDetails(completion: @escaping (ApiResult) -> Void) {
  630. manager.request(
  631. URL(string: UrlManager.sharedInstance.getBankDetailsURL())!,
  632. method: .get,
  633. parameters: nil,
  634. encoding: JSONEncoding.default,
  635. headers: getContentHeaderAfterLogin()
  636. ).responseJSON { (response) -> Void in
  637. if let error = response.result.error {
  638. if error._code == NSURLErrorTimedOut {
  639. completion(.timeOut())
  640. }
  641. }
  642. if response.result.isFailure{
  643. completion(.timeOut())
  644. }
  645. if response.response?.statusCode == nil {
  646. return
  647. }
  648. guard (response.response?.statusCode == 200) else {
  649. if response.response?.statusCode == 401{
  650. completion(.updateAccessCode())
  651. } else if response.response?.statusCode == 403 {
  652. completion(.logOutUser())
  653. } else {
  654. completion(.failure(JSON(response.data!)))
  655. }
  656. return
  657. }
  658. completion(.success(JSON(response.data!)))
  659. }
  660. }
  661. func getSource(completion: @escaping (ApiResult) -> Void) {
  662. Alamofire.request(
  663. URL(string: UrlManager.sharedInstance.getSourceURL())!,
  664. method: .post,
  665. parameters: nil,
  666. encoding: JSONEncoding.default,
  667. headers: getContentHeaderAfterLogin()
  668. ).responseJSON { (response) -> Void in
  669. if let error = response.result.error {
  670. if error._code == NSURLErrorTimedOut {
  671. completion(.timeOut())
  672. }
  673. }
  674. if response.result.isFailure{
  675. completion(.timeOut())
  676. }
  677. if response.response?.statusCode == nil {
  678. return
  679. }
  680. guard (response.response?.statusCode == 200) else {
  681. if response.response?.statusCode == 401{
  682. completion(.updateAccessCode())
  683. } else if response.response?.statusCode == 403 {
  684. completion(.logOutUser())
  685. } else {
  686. completion(.failure(JSON(response.data!)))
  687. }
  688. return
  689. }
  690. completion(.success(JSON(response.data!)))
  691. }
  692. }
  693. func getTransferReason(completion: @escaping (ApiResult) -> Void) {
  694. manager.request(
  695. URL(string: UrlManager.sharedInstance.getTransferReasonURL())!,
  696. method: .post,
  697. parameters: nil,
  698. encoding: JSONEncoding.default,
  699. headers: getContentHeaderAfterLogin()
  700. ).responseJSON { (response) -> Void in
  701. if let error = response.result.error {
  702. if error._code == NSURLErrorTimedOut {
  703. completion(.timeOut())
  704. }
  705. }
  706. if response.result.isFailure{
  707. completion(.timeOut())
  708. }
  709. if response.response?.statusCode == nil {
  710. return
  711. }
  712. guard (response.response?.statusCode == 200) else {
  713. if response.response?.statusCode == 401{
  714. completion(.updateAccessCode())
  715. } else if response.response?.statusCode == 403 {
  716. completion(.logOutUser())
  717. } else{
  718. completion(.failure(JSON(response.data!)))
  719. }
  720. return
  721. }
  722. completion(.success(JSON(response.data!)))
  723. }
  724. }
  725. func performTransfer(parameters: [String: String], completion: @escaping (ApiResult) -> Void) {
  726. let manager = Alamofire.SessionManager.default
  727. manager.session.configuration.timeoutIntervalForRequest = 60
  728. manager.session.configuration.timeoutIntervalForResource = 60
  729. manager.request(
  730. URL(string: UrlManager.sharedInstance.getTransferURL())!,
  731. method: .post,
  732. parameters: parameters,
  733. encoding: JSONEncoding.default,
  734. headers: getContentHeaderAfterLogin()
  735. ).responseJSON { (response) -> Void in
  736. let error = response.result.error
  737. if error?._code == NSURLErrorTimedOut {
  738. completion(.timeOut())
  739. }
  740. if response.response?.statusCode == nil {
  741. completion(.timeOut())
  742. }
  743. guard (response.response?.statusCode == 200) else {
  744. if response.response?.statusCode == 401{
  745. completion(.updateAccessCode())
  746. } else if response.response?.statusCode == 403 {
  747. completion(.logOutUser())
  748. } else {
  749. completion(.failure(JSON(response.data!)))
  750. }
  751. return
  752. }
  753. if response.result.isFailure{
  754. completion(.timeOut())
  755. }
  756. completion(.success(JSON(response.data!)))
  757. }
  758. }
  759. func getCDDListFor(cddCode: String, param: [String: String]?, completion: @escaping (ApiResult) -> Void) {
  760. let manager = Alamofire.SessionManager.default
  761. manager.session.configuration.timeoutIntervalForRequest = 60
  762. manager.session.configuration.timeoutIntervalForResource = 60
  763. manager.request(
  764. URL(string: UrlManager.sharedInstance.getCDDURL(code: cddCode))!,
  765. method: .get,
  766. parameters: param,
  767. encoding: URLEncoding.queryString,
  768. headers: getContentHeaderAfterLogin()
  769. ).responseJSON { (response) -> Void in
  770. let error = response.result.error
  771. if error?._code == NSURLErrorTimedOut {
  772. completion(.timeOut())
  773. }
  774. if response.response?.statusCode == nil {
  775. completion(.timeOut())
  776. }
  777. guard (response.response?.statusCode == 200) else {
  778. if response.response?.statusCode == 401{
  779. completion(.updateAccessCode())
  780. } else if response.response?.statusCode == 403 {
  781. completion(.logOutUser())
  782. } else if (response.error != nil) {
  783. completion(.failure(JSON(response.data!)))
  784. }else{
  785. if response.result.isFailure{
  786. completion(.timeOut())
  787. }
  788. }
  789. return
  790. }
  791. completion(.success(JSON(response.data!)))
  792. }
  793. }
  794. func submitKYCInfo(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
  795. let manager = Alamofire.SessionManager.default
  796. manager.session.configuration.timeoutIntervalForRequest = 60
  797. manager.session.configuration.timeoutIntervalForResource = 60
  798. Alamofire.request(
  799. URL(string: UrlManager.sharedInstance.getKycURL(userId: userId))!,
  800. method: .post,
  801. parameters: param,
  802. encoding: JSONEncoding.default,
  803. headers: getContentHeaderAfterLogin()
  804. ).responseJSON { (response) -> Void in
  805. let error = response.result.error
  806. if error?._code == NSURLErrorTimedOut {
  807. completion(.timeOut())
  808. }
  809. if response.result.isFailure{
  810. completion(.timeOut())
  811. }
  812. if response.response?.statusCode == nil {
  813. completion(.timeOut())
  814. }
  815. guard (response.response?.statusCode == 201) else {
  816. if response.response?.statusCode == 401 {
  817. completion(.updateAccessCode())
  818. } else if response.response?.statusCode == 403 {
  819. completion(.logOutUser())
  820. } else {
  821. completion(.failure(JSON(response.data!)))
  822. }
  823. return
  824. }
  825. completion(.success(JSON(response.data!)))
  826. return
  827. }
  828. }
  829. func submitDocument(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
  830. let manager = Alamofire.SessionManager.default
  831. manager.session.configuration.timeoutIntervalForRequest = 60
  832. manager.session.configuration.timeoutIntervalForResource = 60
  833. manager.request(
  834. URL(string: UrlManager.sharedInstance.getKycDocumentURL(userId: userId))!,
  835. method: .post,
  836. parameters: param,
  837. encoding: JSONEncoding.default,
  838. headers: getContentHeaderAfterLogin()
  839. ).responseJSON { (response) -> Void in
  840. let error = response.result.error
  841. if error?._code == NSURLErrorTimedOut {
  842. completion(.timeOut())
  843. }
  844. if response.result.isFailure{
  845. completion(.timeOut())
  846. }
  847. if response.response?.statusCode == nil {
  848. completion(.timeOut())
  849. }
  850. guard (response.response?.statusCode == 201) else {
  851. if response.response?.statusCode == 401 {
  852. completion(.updateAccessCode())
  853. } else if response.response?.statusCode == 403 {
  854. completion(.logOutUser())
  855. } else {
  856. completion(.failure(JSON(response.data!)))
  857. }
  858. return
  859. }
  860. completion(.success(JSON(response.data!)))
  861. }
  862. }
  863. func submitUserImage(param: [String: String], userId: String, completion: @escaping (ApiResult) -> Void) {
  864. let manager = Alamofire.SessionManager.default
  865. manager.session.configuration.timeoutIntervalForRequest = 60
  866. manager.session.configuration.timeoutIntervalForResource = 60
  867. manager.request(
  868. URL(string: UrlManager.sharedInstance.getUserProfileURL(userId: userId))!,
  869. method: .patch,
  870. parameters: param,
  871. encoding: JSONEncoding.default,
  872. headers: getContentHeaderBeforeLogin()
  873. ).responseJSON { (response) -> Void in
  874. if response.result.isFailure{
  875. completion(.timeOut())
  876. }
  877. if let error = response.result.error {
  878. if error._code == NSURLErrorTimedOut {
  879. completion(.timeOut())
  880. }
  881. }
  882. if response.response?.statusCode == nil {
  883. return
  884. }
  885. guard (response.response?.statusCode == 200) else {
  886. if response.response?.statusCode == 401{
  887. completion(.updateAccessCode())
  888. } else if response.response?.statusCode == 403 {
  889. completion(.logOutUser())
  890. } else {
  891. completion(.failure(JSON(response.data!)))
  892. }
  893. return
  894. }
  895. completion(.success(JSON(response.data!)))
  896. }
  897. }
  898. func getUserDetails(userId: String, completion: @escaping (ApiResult) -> Void) {
  899. let manager = Alamofire.SessionManager.default
  900. manager.session.configuration.timeoutIntervalForRequest = 60
  901. manager.session.configuration.timeoutIntervalForResource = 60
  902. manager.request(
  903. URL(string: UrlManager.sharedInstance.getUserProfileURL(userId: userId))!,
  904. method: .get,
  905. parameters: nil,
  906. encoding: JSONEncoding.default,
  907. headers: getContentHeaderAfterLogin()
  908. ).responseJSON { (response) -> Void in
  909. let error = response.result.error
  910. if error?._code == NSURLErrorTimedOut {
  911. completion(.timeOut())
  912. }
  913. if response.result.isFailure{
  914. completion(.timeOut())
  915. }
  916. if response.response?.statusCode == nil {
  917. completion(.timeOut())
  918. }
  919. guard (response.response?.statusCode == 200) else {
  920. if response.response?.statusCode == 401 {
  921. completion(.updateAccessCode())
  922. } else if response.response?.statusCode == 403 {
  923. completion(.logOutUser())
  924. } else {
  925. completion(.failure(JSON(response.data!)))
  926. }
  927. return
  928. }
  929. completion(.success(JSON(response.data!)))
  930. }
  931. }
  932. func fetchUserInfoFromKyc(userId: String, completion: @escaping (ApiResult) -> Void) {
  933. let manager = Alamofire.SessionManager.default
  934. manager.session.configuration.timeoutIntervalForRequest = 60
  935. manager.session.configuration.timeoutIntervalForResource = 60
  936. manager.request(
  937. URL(string: UrlManager.sharedInstance.getKYCURL(userId: userId))!,
  938. method: .get,
  939. parameters: nil,
  940. encoding: JSONEncoding.default,
  941. headers: getContentHeaderAfterLogin()
  942. ).responseJSON { (response) -> Void in
  943. let error = response.result.error
  944. if error?._code == NSURLErrorTimedOut {
  945. completion(.timeOut())
  946. }
  947. if response.result.isFailure{
  948. completion(.timeOut())
  949. }
  950. if response.response?.statusCode == nil {
  951. completion(.timeOut())
  952. }
  953. guard (response.response?.statusCode == 200) else {
  954. if response.response?.statusCode == 401{
  955. completion(.updateAccessCode())
  956. } else if response.response?.statusCode == 403 {
  957. completion(.logOutUser())
  958. } else {
  959. completion(.failure(JSON(response.data!)))
  960. }
  961. return
  962. }
  963. completion(.success(JSON(response.data!)))
  964. }
  965. }
  966. func updateUserInfoForKyc(userId: String, parameter: [String: String], completion: @escaping (ApiResult) -> Void) {
  967. let manager = Alamofire.SessionManager.default
  968. manager.session.configuration.timeoutIntervalForRequest = 60
  969. manager.session.configuration.timeoutIntervalForResource = 60
  970. manager.request(
  971. URL(string: UrlManager.sharedInstance.getKYCURL(userId: userId))!,
  972. method: .patch,
  973. parameters: parameter,
  974. encoding: JSONEncoding.default,
  975. headers: getContentHeaderAfterLogin()
  976. ).responseJSON { (response) -> Void in
  977. let error = response.result.error
  978. if error?._code == NSURLErrorTimedOut {
  979. completion(.timeOut())
  980. }
  981. if response.result.isFailure{
  982. completion(.timeOut())
  983. }
  984. if response.response?.statusCode == nil {
  985. completion(.timeOut())
  986. }
  987. guard (response.response?.statusCode == 200) else {
  988. if response.response?.statusCode == 401{
  989. completion(.updateAccessCode())
  990. } else if response.response?.statusCode == 403 {
  991. completion(.logOutUser())
  992. } else {
  993. completion(.failure(JSON(response.data!)))
  994. }
  995. return
  996. }
  997. completion(.success(JSON(response.data!)))
  998. }
  999. }
  1000. /// Getting AgentLocation
  1001. func getAgentLocationDetails(countryId: String, city: String,completion: @escaping (ApiResult) -> Void) {
  1002. let sessionManager = Alamofire.SessionManager.default
  1003. sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
  1004. dataTasks.forEach { $0.cancel() }
  1005. uploadTasks.forEach { $0.cancel() }
  1006. downloadTasks.forEach { $0.cancel() }
  1007. }
  1008. let manager = Alamofire.SessionManager.default
  1009. manager.session.configuration.timeoutIntervalForRequest = 60
  1010. manager.session.configuration.timeoutIntervalForResource = 60
  1011. manager.request(
  1012. URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
  1013. method: .get,
  1014. parameters: ["countryId": countryId, "city": city, "constraint": "default"],
  1015. encoding: URLEncoding.queryString,
  1016. headers: getContentHeaderAfterLogin()
  1017. ).responseJSON { (response) -> Void in
  1018. let error = response.result.error
  1019. if error?._code == NSURLErrorTimedOut {
  1020. completion(.timeOut())
  1021. }
  1022. if response.result.isFailure{
  1023. completion(.timeOut())
  1024. }
  1025. if response.response?.statusCode == nil {
  1026. completion(.timeOut())
  1027. }
  1028. guard (response.response?.statusCode == 200) else {
  1029. if response.response?.statusCode == 401 {
  1030. completion(.updateAccessCode())
  1031. } else if response.response?.statusCode == 403 {
  1032. completion(.logOutUser())
  1033. } else {
  1034. completion(.failure(JSON(response.data!)))
  1035. }
  1036. return
  1037. }
  1038. completion(.success(JSON(response.data!)))
  1039. }
  1040. }
  1041. func getFilteredRecipientList(queryString: String, userId: String, completion: @escaping (ApiResult) -> Void) {
  1042. cancelExistingNetworkCalls()
  1043. let manager = Alamofire.SessionManager.default
  1044. manager.session.configuration.timeoutIntervalForRequest = 60
  1045. manager.session.configuration.timeoutIntervalForResource = 60
  1046. manager.request(
  1047. URL(string: UrlManager.sharedInstance.getRecipientListURL(userId: userId))!,
  1048. method: .get, parameters: ["search": queryString],
  1049. encoding: URLEncoding.queryString,
  1050. headers: getContentHeaderAfterLogin()
  1051. ).responseJSON { (response) -> Void in
  1052. if let error = response.result.error {
  1053. if error._code == NSURLErrorTimedOut {
  1054. completion(.timeOut())
  1055. }
  1056. }
  1057. if response.result.isFailure{
  1058. completion(.timeOut())
  1059. }
  1060. if response.response?.statusCode == nil {
  1061. return
  1062. }
  1063. guard (response.response?.statusCode == 200) else {
  1064. if response.response?.statusCode == 401{
  1065. completion(.updateAccessCode())
  1066. } else if response.response?.statusCode == 403 {
  1067. completion(.logOutUser())
  1068. } else{
  1069. completion(.failure(JSON(response.data!)))
  1070. }
  1071. return
  1072. }
  1073. completion(.success(JSON(response.data!)))
  1074. }
  1075. }
  1076. func getTransactionList(userId: String, recipientId: String, recipientName: String, transactionType: String, startDate: String, endDate: String, txPage: String, txSize: String, completion: @escaping (ApiResult) -> Void) {
  1077. var parameters: [String: Any] = [String: Any] ()
  1078. switch transactionType {
  1079. case "":
  1080. parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
  1081. case "sent":
  1082. parameters = ["userId": userId, "transactionType": "sent", "startDate": startDate, "endDate": endDate]
  1083. case "received":
  1084. parameters = ["userId": userId, "transactionType": "received", "startDate": startDate, "endDate": endDate]
  1085. case "date" :
  1086. parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
  1087. case "trackTransfer":
  1088. parameters = ["size": 3, "userId": userId, "receiverId": recipientId, "startDate": startDate, "endDate": endDate, "payoutMode": "cash,bank,door to door"]
  1089. case "search":
  1090. parameters = ["userId": userId, "search": recipientName, "startDate": startDate, "endDate": endDate]
  1091. case "walletTransfer":
  1092. parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "userId": userId, "transactionType": "sent", "payoutMode": "wallet transfer"]
  1093. case "walletBorrow":
  1094. parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "requestedTo": userId, "payoutMode": "wallet transfer", "transferType": "request"]
  1095. case "moneyRequest":
  1096. parameters = ["page": txPage, "size": txSize, "startDate": startDate, "endDate": endDate, "payoutMode": "wallet transfer", "transferType": "request", "userId": userId]
  1097. default:
  1098. return
  1099. }
  1100. let manager = Alamofire.SessionManager.default
  1101. manager.session.configuration.timeoutIntervalForRequest = 60
  1102. manager.session.configuration.timeoutIntervalForResource = 60
  1103. manager.request(
  1104. URL(string: UrlManager.sharedInstance.getTransactionListURL())!,
  1105. method: .get,parameters: parameters, encoding: URLEncoding.queryString,
  1106. headers: getContentHeaderAfterLogin()
  1107. ).responseJSON { (response) -> Void in
  1108. let error = response.result.error
  1109. if error?._code == NSURLErrorTimedOut {
  1110. completion(.timeOut())
  1111. }
  1112. if response.result.isFailure{
  1113. completion(.timeOut())
  1114. }
  1115. if response.response?.statusCode == nil {
  1116. completion(.timeOut())
  1117. }
  1118. guard (response.response?.statusCode == 200) else {
  1119. if response.response?.statusCode == 401{
  1120. completion(.updateAccessCode())
  1121. } else if response.response?.statusCode == 403 {
  1122. completion(.logOutUser())
  1123. } else{
  1124. completion(.failure(JSON(response.data!)))
  1125. }
  1126. return
  1127. }
  1128. completion(.success(JSON(response.data!)))
  1129. }
  1130. }
  1131. /**
  1132. TrackTransaction Pagination
  1133. */
  1134. func getTransactionList(userId: String, recipientId: String, recipientName: String, transactionType: String, startDate: String, endDate: String, page:Int, size: Int, completion: @escaping (ApiResult) -> Void) {
  1135. var parameters: [String: Any] = [String: Any] ()
  1136. switch transactionType {
  1137. case "":
  1138. parameters = ["userId": userId, "startDate": startDate, "endDate": endDate, "page": page, "size": size]
  1139. case "sent":
  1140. parameters = ["userId": userId, "transactionType": "sent", "startDate": startDate, "endDate": endDate,"page": page, "size": size]
  1141. case "received":
  1142. parameters = ["userId": userId, "transactionType": "received", "startDate": startDate, "endDate": endDate,"page": page, "size": size]
  1143. case "date" :
  1144. parameters = ["userId": userId, "startDate": startDate, "endDate": endDate]
  1145. case "trackTransfer":
  1146. parameters = ["size": 3, "userId": userId, "receiverId": recipientId, "startDate": startDate, "endDate": endDate]
  1147. case "search":
  1148. parameters = ["userId": userId, "receiverName": recipientName, "startDate": startDate, "endDate": endDate]
  1149. case "walletTransfer":
  1150. parameters = ["userId": userId, "payoutMode": "wallet transfer", "transferType": "offer", "startDate": startDate, "endDate": endDate, "page": page, "size": size]
  1151. case "walletBorrow":
  1152. parameters = ["userId": userId, "payoutMode": "wallet transfer", "transferType": "request", "startDate": startDate, "endDate": endDate, "page": page, "size": size]
  1153. case "moneyRequest":
  1154. parameters = ["requestedTo": userId, "payoutMode": "wallet transfer", "startDate": startDate, "endDate": endDate]
  1155. default:
  1156. return
  1157. }
  1158. let manager = Alamofire.SessionManager.default
  1159. manager.session.configuration.timeoutIntervalForRequest = 60
  1160. manager.session.configuration.timeoutIntervalForResource = 60
  1161. manager.request(
  1162. URL(string: UrlManager.sharedInstance.getTransactionListURL())!,
  1163. method: .get,parameters: parameters, encoding: URLEncoding.queryString,
  1164. headers: getContentHeaderAfterLogin()
  1165. ).responseJSON { (response) -> Void in
  1166. let error = response.result.error
  1167. if error?._code == NSURLErrorTimedOut {
  1168. completion(.timeOut())
  1169. }
  1170. if response.result.isFailure{
  1171. completion(.timeOut())
  1172. }
  1173. if response.response?.statusCode == nil {
  1174. completion(.timeOut())
  1175. }
  1176. guard (response.response?.statusCode == 200) else {
  1177. if response.response?.statusCode == 401{
  1178. completion(.updateAccessCode())
  1179. } else if response.response?.statusCode == 403 {
  1180. completion(.logOutUser())
  1181. } else {
  1182. completion(.failure(JSON(response.data!)))
  1183. }
  1184. return
  1185. }
  1186. completion(.success(JSON(response.data!)))
  1187. }
  1188. }
  1189. func submitMessage(supportIndex: Int, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  1190. let manager = Alamofire.SessionManager.default
  1191. manager.session.configuration.timeoutIntervalForRequest = 60
  1192. manager.session.configuration.timeoutIntervalForResource = 60
  1193. manager.request(
  1194. URL(string: UrlManager.sharedInstance.getMessageURL(supportIndex: supportIndex))!,
  1195. method: .post,
  1196. parameters: param,
  1197. encoding: JSONEncoding.default,
  1198. headers: getContentHeaderAfterLogin()
  1199. ).responseJSON { (response) -> Void in
  1200. if let error = response.result.error {
  1201. if error._code == NSURLErrorTimedOut {
  1202. completion(.timeOut())
  1203. }
  1204. }
  1205. if response.result.isFailure{
  1206. completion(.timeOut())
  1207. }
  1208. if response.response?.statusCode == nil {
  1209. return
  1210. }
  1211. guard (response.response?.statusCode == 201) else {
  1212. if response.response?.statusCode == 401{
  1213. completion(.updateAccessCode())
  1214. } else if response.response?.statusCode == 403 {
  1215. completion(.logOutUser())
  1216. } else{
  1217. completion(.failure(JSON(response.data!)))
  1218. }
  1219. return
  1220. }
  1221. completion(.success(JSON(response.data!)))
  1222. }
  1223. }
  1224. func withdrawBalance(requestDetails: [String: String], completion: @escaping (ApiResult) -> Void) {
  1225. let manager = Alamofire.SessionManager.default
  1226. manager.session.configuration.timeoutIntervalForRequest = 60
  1227. manager.session.configuration.timeoutIntervalForResource = 60
  1228. manager.request(
  1229. URL(string: UrlManager.sharedInstance.getWithdrawURL())!,
  1230. method: .post,
  1231. parameters: requestDetails,
  1232. encoding: JSONEncoding.default,
  1233. headers: getContentHeaderAfterLogin()
  1234. ).responseJSON { (response) -> Void in
  1235. if let error = response.result.error {
  1236. if error._code == NSURLErrorTimedOut {
  1237. completion(.timeOut())
  1238. }
  1239. }
  1240. if response.result.isFailure{
  1241. completion(.timeOut())
  1242. }
  1243. if response.response?.statusCode == nil {
  1244. return
  1245. }
  1246. guard (response.response?.statusCode == 200) else {
  1247. if response.response?.statusCode == 401{
  1248. completion(.updateAccessCode())
  1249. } else if response.response?.statusCode == 403 {
  1250. completion(.logOutUser())
  1251. } else {
  1252. completion(.failure(JSON(response.data!)))
  1253. }
  1254. return
  1255. }
  1256. completion(.success(JSON(response.data!)))
  1257. }
  1258. }
  1259. func getBranchDetails(bankId: String, completion: @escaping (ApiResult) -> Void) {
  1260. let sessionManager = Alamofire.SessionManager.default
  1261. sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
  1262. dataTasks.forEach { $0.cancel() }
  1263. uploadTasks.forEach { $0.cancel() }
  1264. downloadTasks.forEach { $0.cancel() }
  1265. }
  1266. let manager = Alamofire.SessionManager.default
  1267. manager.session.configuration.timeoutIntervalForRequest = 60
  1268. manager.session.configuration.timeoutIntervalForResource = 60
  1269. manager.request(
  1270. URL(string: UrlManager.sharedInstance.getBranchURL(bankId: bankId))!,
  1271. method: .get,
  1272. parameters: nil,
  1273. encoding: JSONEncoding.default,
  1274. headers: getContentHeaderAfterLogin()
  1275. ).responseJSON { (response) -> Void in
  1276. if let error = response.result.error {
  1277. if error._code == NSURLErrorTimedOut {
  1278. completion(.timeOut())
  1279. }
  1280. }
  1281. if response.result.isFailure{
  1282. completion(.timeOut())
  1283. }
  1284. if response.response?.statusCode == nil {
  1285. return
  1286. }
  1287. guard (response.response?.statusCode == 200) else {
  1288. if response.response?.statusCode == 401{
  1289. completion(.updateAccessCode())
  1290. } else if response.response?.statusCode == 403 {
  1291. completion(.logOutUser())
  1292. } else{
  1293. completion(.failure(JSON(response.data!)))
  1294. }
  1295. return
  1296. }
  1297. completion(.success(JSON(response.data!)))
  1298. }
  1299. }
  1300. func changePassword(userId: String, currentPassword: String, newPassword: String, completion: @escaping (ApiResult) -> Void) {
  1301. let manager = Alamofire.SessionManager.default
  1302. manager.session.configuration.timeoutIntervalForRequest = 60
  1303. manager.session.configuration.timeoutIntervalForResource = 60
  1304. manager.request(
  1305. URL(string: UrlManager.sharedInstance.getPasswordChangeURL(userId: userId))!,
  1306. method: .post,
  1307. parameters: ["currentPassword": currentPassword,
  1308. "newPassword": newPassword],
  1309. encoding: JSONEncoding.default,
  1310. headers: getContentHeaderAfterLogin()
  1311. ).responseJSON { (response) -> Void in
  1312. if let error = response.result.error {
  1313. if error._code == NSURLErrorTimedOut {
  1314. completion(.timeOut())
  1315. }
  1316. }
  1317. if response.result.isFailure{
  1318. completion(.timeOut())
  1319. }
  1320. if response.response?.statusCode == nil {
  1321. return
  1322. }
  1323. guard (response.response?.statusCode == 204) else {
  1324. if response.response?.statusCode == 401{
  1325. completion(.updateAccessCode())
  1326. } else if response.response?.statusCode == 403 {
  1327. completion(.logOutUser())
  1328. } else{
  1329. completion(.failure(JSON(response.data!)))
  1330. }
  1331. return
  1332. }
  1333. completion(.success(JSON(response.data!)))
  1334. }
  1335. }
  1336. func performWalletAction(param: [String: String], moneyRequestAccepted: Bool, completion: @escaping (ApiResult) -> Void) {
  1337. let urlString: String!
  1338. if moneyRequestAccepted {
  1339. urlString = UrlManager.sharedInstance.getAcceptMoneyRequestURL()
  1340. } else {
  1341. urlString = UrlManager.sharedInstance.getWalletURL()
  1342. }
  1343. let manager = Alamofire.SessionManager.default
  1344. manager.session.configuration.timeoutIntervalForRequest = 60
  1345. manager.session.configuration.timeoutIntervalForResource = 60
  1346. manager.request(
  1347. URL(string: urlString)!,
  1348. method: .post,
  1349. parameters: param,
  1350. encoding: JSONEncoding.default,
  1351. headers: getContentHeaderAfterLogin()
  1352. ).responseJSON { (response) -> Void in
  1353. let error = response.result.error
  1354. if error?._code == NSURLErrorTimedOut {
  1355. completion(.timeOut())
  1356. }
  1357. if response.result.isFailure{
  1358. completion(.timeOut())
  1359. }
  1360. if response.response?.statusCode == nil {
  1361. completion(.timeOut())
  1362. }
  1363. guard (response.response?.statusCode == 200) else {
  1364. if response.response?.statusCode == 401{
  1365. completion(.updateAccessCode())
  1366. } else if response.response?.statusCode == 403 {
  1367. completion(.logOutUser())
  1368. } else{
  1369. completion(.failure(JSON(response.data!)))
  1370. }
  1371. return
  1372. }
  1373. completion(.success(JSON(response.data!)))
  1374. }
  1375. }
  1376. /// Create Invitee
  1377. func createInvitee(param: [String: String], completion: @escaping (ApiResult) -> Void){
  1378. let manager = Alamofire.SessionManager.default
  1379. manager.session.configuration.timeoutIntervalForRequest = 60
  1380. manager.session.configuration.timeoutIntervalForResource = 60
  1381. manager.request(
  1382. URL(string: UrlManager.sharedInstance.getNewInviteeURL())!,
  1383. method: .post,
  1384. parameters: param,
  1385. encoding: JSONEncoding.default,
  1386. headers: getContentHeaderAfterLogin()
  1387. ).responseJSON { (response) -> Void in
  1388. if let error = response.result.error {
  1389. if error._code == NSURLErrorTimedOut {
  1390. completion(.timeOut())
  1391. }
  1392. }
  1393. if response.result.isFailure{
  1394. completion(.timeOut())
  1395. }
  1396. if response.response?.statusCode == nil {
  1397. return
  1398. }
  1399. guard (response.response?.statusCode == 201) else {
  1400. if response.response?.statusCode == 401{
  1401. completion(.updateAccessCode())
  1402. } else if response.response?.statusCode == 403 {
  1403. completion(.logOutUser())
  1404. } else {
  1405. completion(.failure(JSON(response.data!)))
  1406. }
  1407. return
  1408. }
  1409. completion(.success(JSON(response.data!)))
  1410. }
  1411. }
  1412. /// GetInvitee
  1413. func getInvitee(userId: String, completion: @escaping (ApiResult) -> Void){
  1414. let manager = Alamofire.SessionManager.default
  1415. manager.session.configuration.timeoutIntervalForRequest = 60
  1416. manager.session.configuration.timeoutIntervalForResource = 60
  1417. manager.request(
  1418. URL(string: UrlManager.sharedInstance.getInviteeURL(userId:userId))!,
  1419. method: .get,
  1420. parameters: nil,
  1421. encoding: JSONEncoding.default,
  1422. headers: getContentHeaderAfterLogin()
  1423. ).responseJSON { (response) -> Void in
  1424. if let error = response.result.error {
  1425. if error._code == NSURLErrorTimedOut {
  1426. completion(.timeOut())
  1427. }
  1428. }
  1429. if response.result.isFailure{
  1430. completion(.timeOut())
  1431. }
  1432. if response.response?.statusCode == nil {
  1433. return
  1434. }
  1435. guard (response.response?.statusCode == 200) else {
  1436. if response.response?.statusCode == 401{
  1437. completion(.updateAccessCode())
  1438. } else if response.response?.statusCode == 403 {
  1439. completion(.logOutUser())
  1440. } else {
  1441. completion(.failure(JSON(response.data!)))
  1442. }
  1443. return
  1444. }
  1445. completion(.success(JSON(response.data!)))
  1446. }
  1447. }
  1448. func getcmRegistrationId(userId: String, cmRegistrationId: String, completion: @escaping (ApiResult) -> Void){
  1449. let manager = Alamofire.SessionManager.default
  1450. manager.session.configuration.timeoutIntervalForRequest = 60
  1451. manager.session.configuration.timeoutIntervalForResource = 60
  1452. manager.request(
  1453. URL(string: UrlManager.sharedInstance.getcmRegistrationIdURL(userId: userId))!,
  1454. method: .patch,
  1455. parameters: ["cmRegistrationId": cmRegistrationId],
  1456. encoding: JSONEncoding.default,
  1457. headers: getContentHeaderAfterLogin()
  1458. ).responseJSON { (response) -> Void in
  1459. if let error = response.result.error {
  1460. if error._code == NSURLErrorTimedOut {
  1461. completion(.timeOut())
  1462. }
  1463. }
  1464. if response.result.isFailure{
  1465. completion(.timeOut())
  1466. }
  1467. if response.response?.statusCode == nil {
  1468. return
  1469. }
  1470. guard (response.response?.statusCode == 200) else {
  1471. if response.response?.statusCode == 401{
  1472. completion(.updateAccessCode())
  1473. } else if response.response?.statusCode == 403 {
  1474. completion(.logOutUser())
  1475. } else {
  1476. completion(.failure(JSON(response.data!)))
  1477. }
  1478. return
  1479. }
  1480. completion(.success(JSON(response.data!)))
  1481. }
  1482. }
  1483. func getNotification(userId: String, completion: @escaping (ApiResult) -> Void){
  1484. let manager = Alamofire.SessionManager.default
  1485. manager.session.configuration.timeoutIntervalForRequest = 60
  1486. manager.session.configuration.timeoutIntervalForResource = 60
  1487. manager.request(
  1488. URL(string: UrlManager.sharedInstance.getNotificationURL(userId: userId))!,
  1489. method: .get,
  1490. parameters: nil,
  1491. encoding: JSONEncoding.default,
  1492. headers: getContentHeaderAfterLogin()
  1493. ).responseJSON { (response) -> Void in
  1494. if let error = response.result.error {
  1495. if error._code == NSURLErrorTimedOut {
  1496. completion(.timeOut())
  1497. }
  1498. }
  1499. if response.result.isFailure{
  1500. completion(.timeOut())
  1501. }
  1502. if response.response?.statusCode == nil {
  1503. return
  1504. }
  1505. guard (response.response?.statusCode == 200) else {
  1506. if response.response?.statusCode == 401{
  1507. completion(.updateAccessCode())
  1508. } else if response.response?.statusCode == 403 {
  1509. completion(.logOutUser())
  1510. } else {
  1511. completion(.failure(JSON(response.data!)))
  1512. }
  1513. return
  1514. }
  1515. completion(.success(JSON(response.data!)))
  1516. }
  1517. }
  1518. func getNotification(userId: String,page:Int,size:Int, completion: @escaping (ApiResult) -> Void){
  1519. let manager = Alamofire.SessionManager.default
  1520. manager.session.configuration.timeoutIntervalForRequest = 60
  1521. manager.session.configuration.timeoutIntervalForResource = 60
  1522. manager.request(
  1523. URL(string: UrlManager.sharedInstance.getNotificationURL(userId: userId))!,
  1524. method: .get,
  1525. parameters: ["userId":userId,"size":size,"page":page],
  1526. encoding: URLEncoding.queryString,
  1527. headers: getContentHeaderAfterLogin()
  1528. ).responseJSON { (response) -> Void in
  1529. if let error = response.result.error {
  1530. if error._code == NSURLErrorTimedOut {
  1531. completion(.timeOut())
  1532. }
  1533. }
  1534. if response.result.isFailure{
  1535. completion(.timeOut())
  1536. }
  1537. if response.response?.statusCode == nil {
  1538. return
  1539. }
  1540. guard (response.response?.statusCode == 200) else {
  1541. if response.response?.statusCode == 401{
  1542. completion(.updateAccessCode())
  1543. } else if response.response?.statusCode == 403 {
  1544. completion(.logOutUser())
  1545. } else {
  1546. completion(.failure(JSON(response.data!)))
  1547. }
  1548. return
  1549. }
  1550. completion(.success(JSON(response.data!)))
  1551. }
  1552. }
  1553. func patchNotification(notificationId: String, viewed: String, completion: @escaping (ApiResult) -> Void){
  1554. let manager = Alamofire.SessionManager.default
  1555. manager.session.configuration.timeoutIntervalForRequest = 60
  1556. manager.session.configuration.timeoutIntervalForResource = 60
  1557. manager.request(
  1558. URL(string: UrlManager.sharedInstance.patchNotificationURL(notificationId: notificationId))!,
  1559. method: .patch,
  1560. parameters: ["viewed": viewed],
  1561. encoding: JSONEncoding.default,
  1562. headers: getContentHeaderAfterLogin()
  1563. ).responseJSON { (response) -> Void in
  1564. if let error = response.result.error {
  1565. if error._code == NSURLErrorTimedOut {
  1566. completion(.timeOut())
  1567. }
  1568. }
  1569. if response.result.isFailure{
  1570. completion(.timeOut())
  1571. }
  1572. if response.response?.statusCode == nil {
  1573. return
  1574. }
  1575. guard (response.response?.statusCode == 200) else {
  1576. if response.response?.statusCode == 401{
  1577. completion(.updateAccessCode())
  1578. } else if response.response?.statusCode == 403 {
  1579. completion(.logOutUser())
  1580. } else {
  1581. completion(.failure(JSON(response.data!)))
  1582. }
  1583. return
  1584. }
  1585. completion(.success(JSON(response.data!)))
  1586. }
  1587. }
  1588. func fetchCountryList(completion: @escaping (ApiResult) -> Void) {
  1589. let manager = Alamofire.SessionManager.default
  1590. manager.session.configuration.timeoutIntervalForRequest = 60
  1591. manager.session.configuration.timeoutIntervalForResource = 60
  1592. manager.request(
  1593. URL(string: UrlManager.sharedInstance.getCountryURL())!,
  1594. method: .get,
  1595. parameters: nil,
  1596. encoding: JSONEncoding.default,
  1597. headers: getContentHeaderAfterLogin()
  1598. ).responseJSON { (response) -> Void in
  1599. let error = response.result.error
  1600. if error?._code == NSURLErrorTimedOut {
  1601. completion(.timeOut())
  1602. }
  1603. if response.response?.statusCode == nil {
  1604. completion(.timeOut())
  1605. }
  1606. guard (response.response?.statusCode == 200) else {
  1607. if response.response?.statusCode == 401{
  1608. completion(.updateAccessCode())
  1609. } else if response.response?.statusCode == 403 {
  1610. completion(.logOutUser())
  1611. } else {
  1612. completion(.failure(JSON(response.data!)))
  1613. }
  1614. return
  1615. }
  1616. if response.result.isFailure{
  1617. completion(.timeOut())
  1618. }
  1619. completion(.success(JSON(response.data!)))
  1620. }
  1621. }
  1622. func getCountryInfo(countryId:String, completion: @escaping (ApiResult) -> Void) {
  1623. let manager = Alamofire.SessionManager.default
  1624. manager.session.configuration.timeoutIntervalForRequest = 60
  1625. manager.session.configuration.timeoutIntervalForResource = 60
  1626. manager.request(
  1627. URL(string: UrlManager.sharedInstance.getCountryURL())!,
  1628. method: .get,
  1629. parameters: ["countryId": countryId],
  1630. encoding: URLEncoding.queryString,
  1631. headers: getContentHeaderAfterLogin()
  1632. ).responseJSON { (response) -> Void in
  1633. let error = response.result.error
  1634. if error?._code == NSURLErrorTimedOut {
  1635. completion(.timeOut())
  1636. }
  1637. if response.result.isFailure{
  1638. completion(.timeOut())
  1639. }
  1640. if response.response?.statusCode == nil {
  1641. return
  1642. }
  1643. guard (response.response?.statusCode == 200) else {
  1644. if response.response?.statusCode == 401{
  1645. completion(.updateAccessCode())
  1646. } else if response.response?.statusCode == 403 {
  1647. completion(.logOutUser())
  1648. } else {
  1649. completion(.failure(JSON(response.data!)))
  1650. }
  1651. return
  1652. }
  1653. completion(.success(JSON(response.data!)))
  1654. }
  1655. }
  1656. func getCountryPayoutMode(countryId: String, completion: @escaping (ApiResult) -> Void) {
  1657. let manager = Alamofire.SessionManager.default
  1658. manager.session.configuration.timeoutIntervalForRequest = 60
  1659. manager.session.configuration.timeoutIntervalForResource = 60
  1660. manager.request(
  1661. URL(string: UrlManager.sharedInstance.getCountryPayoutModeURL())!,
  1662. method: .get,parameters: ["countryId": countryId],
  1663. encoding: URLEncoding.queryString,
  1664. headers: getContentHeaderAfterLogin()
  1665. ).responseJSON { (response) -> Void in
  1666. let error = response.result.error
  1667. if error?._code == NSURLErrorTimedOut {
  1668. completion(.timeOut())
  1669. }
  1670. if response.result.isFailure{
  1671. completion(.timeOut())
  1672. }
  1673. if response.response?.statusCode == nil {
  1674. completion(.timeOut())
  1675. }
  1676. guard (response.response?.statusCode == 200) else {
  1677. if response.response?.statusCode == 401{
  1678. completion(.updateAccessCode())
  1679. } else if response.response?.statusCode == 403 {
  1680. completion(.logOutUser())
  1681. } else {
  1682. completion(.failure(JSON(response.data!)))
  1683. }
  1684. return
  1685. }
  1686. completion(.success(JSON(response.data!)))
  1687. }
  1688. }
  1689. func fetchAgentLocation(countryId: String,completion: @escaping (ApiResult) -> Void){
  1690. let manager = Alamofire.SessionManager.default
  1691. manager.session.configuration.timeoutIntervalForRequest = 60
  1692. manager.session.configuration.timeoutIntervalForResource = 60
  1693. manager.request(
  1694. URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
  1695. method: .get,
  1696. parameters: ["countryId": countryId, "constraint": "default"],
  1697. encoding: URLEncoding.queryString,
  1698. headers: getContentHeaderAfterLogin()
  1699. ).responseJSON { (response) -> Void in
  1700. let error = response.result.error
  1701. if error?._code == NSURLErrorTimedOut {
  1702. completion(.timeOut())
  1703. }
  1704. if response.result.isFailure{
  1705. completion(.timeOut())
  1706. }
  1707. if response.response?.statusCode == nil {
  1708. return
  1709. }
  1710. guard (response.response?.statusCode == 200) else {
  1711. if response.response?.statusCode == 401{
  1712. completion(.updateAccessCode())
  1713. } else if response.response?.statusCode == 403 {
  1714. completion(.logOutUser())
  1715. } else {
  1716. completion(.failure(JSON(response.data!)))
  1717. }
  1718. return
  1719. }
  1720. completion(.success(JSON(response.data!)))
  1721. }
  1722. }
  1723. func getPayoutBankDetail(countryId: String, payoutMethodId: String, completion: @escaping (ApiResult) -> Void){
  1724. let manager = Alamofire.SessionManager.default
  1725. manager.session.configuration.timeoutIntervalForRequest = 60
  1726. manager.session.configuration.timeoutIntervalForResource = 60
  1727. manager.request(
  1728. URL(string: UrlManager.sharedInstance.getPayoutsURL())!,
  1729. method: .get,
  1730. parameters: ["countryId": countryId,"payoutMethodId": payoutMethodId, "constraint": "txn"],
  1731. encoding: URLEncoding.queryString,
  1732. headers: getContentHeaderAfterLogin()
  1733. ).responseJSON { (response) -> Void in
  1734. let error = response.result.error
  1735. if error?._code == NSURLErrorTimedOut {
  1736. completion(.timeOut())
  1737. }
  1738. if response.result.isFailure{
  1739. completion(.timeOut())
  1740. }
  1741. if response.response?.statusCode == nil {
  1742. completion(.timeOut())
  1743. }
  1744. guard (response.response?.statusCode == 200) else {
  1745. if response.response?.statusCode == 401 {
  1746. completion(.updateAccessCode())
  1747. } else if response.response?.statusCode == 403 {
  1748. completion(.logOutUser())
  1749. } else {
  1750. completion(.failure(JSON(response.data!)))
  1751. }
  1752. return
  1753. }
  1754. completion(.success(JSON(response.data!)))
  1755. }
  1756. }
  1757. func getPayoutBankBranchDetail(countryId: String, payoutId: String, completion: @escaping (ApiResult) -> Void){
  1758. let manager = Alamofire.SessionManager.default
  1759. manager.session.configuration.timeoutIntervalForRequest = 60
  1760. manager.session.configuration.timeoutIntervalForResource = 60
  1761. manager.request(
  1762. URL(string: UrlManager.sharedInstance.getPayoutsBranchURL(payoutId: payoutId))!,
  1763. method: .get,
  1764. parameters: ["countryId": countryId],
  1765. encoding: URLEncoding.queryString,
  1766. headers: getContentHeaderAfterLogin()
  1767. ).responseJSON { (response) -> Void in
  1768. let error = response.result.error
  1769. if error?._code == NSURLErrorTimedOut {
  1770. completion(.timeOut())
  1771. }
  1772. if response.result.isFailure{
  1773. completion(.timeOut())
  1774. }
  1775. if response.response?.statusCode == nil {
  1776. completion(.timeOut())
  1777. }
  1778. guard (response.response?.statusCode == 200) else {
  1779. if response.response?.statusCode == 401{
  1780. completion(.updateAccessCode())
  1781. } else if response.response?.statusCode == 403 {
  1782. completion(.logOutUser())
  1783. } else {
  1784. completion(.failure(JSON(response.data!)))
  1785. }
  1786. return
  1787. }
  1788. completion(.success(JSON(response.data!)))
  1789. }
  1790. }
  1791. //SOCIAL BEGINS HERE
  1792. //CREATE Social Feeds
  1793. func createSocialFeed(param: [String: String], completion: @escaping (ApiResult) -> Void) {
  1794. let manager = Alamofire.SessionManager.default
  1795. manager.session.configuration.timeoutIntervalForRequest = 60
  1796. manager.session.configuration.timeoutIntervalForResource = 60
  1797. manager.request(URL(string: UrlManager.sharedInstance.getCRUDFeedURL())!,
  1798. method: .post,
  1799. parameters: param,
  1800. encoding: JSONEncoding.default,
  1801. headers: getContentHeaderAfterLogin())
  1802. .responseJSON { (response) -> Void in
  1803. if let error = response.result.error {
  1804. if error._code == NSURLErrorTimedOut {
  1805. completion(.timeOut())
  1806. }
  1807. }
  1808. if response.result.isFailure{
  1809. completion(.timeOut())
  1810. }
  1811. if response.response?.statusCode == nil {
  1812. return
  1813. }
  1814. guard (response.response?.statusCode == 201) else {
  1815. if response.response?.statusCode == 401 {
  1816. completion(.updateAccessCode())
  1817. } else if response.response?.statusCode == 403 {
  1818. completion(.logOutUser())
  1819. } else {
  1820. completion(.failure(JSON(response.data!)))
  1821. }
  1822. return
  1823. }
  1824. completion(.success(JSON(response.data!)))
  1825. }
  1826. }
  1827. //READ Social Feeds
  1828. func getSocialFeeds(param : [String: String], completion : @escaping (ApiResult) -> Void){
  1829. let manager = Alamofire.SessionManager.default
  1830. manager.session.configuration.timeoutIntervalForRequest = 60
  1831. manager.session.configuration.timeoutIntervalForResource = 60
  1832. manager.request(
  1833. URL(string : (UrlManager.sharedInstance.getCRUDFeedURL()))!,
  1834. method: .get,
  1835. parameters: param,
  1836. encoding: URLEncoding.queryString,
  1837. headers: getContentHeaderAfterLogin())
  1838. .responseJSON { (response) -> Void in
  1839. let error = response.result.error
  1840. if error?._code == NSURLErrorTimedOut {
  1841. completion(.timeOut())
  1842. }
  1843. if response.result.isFailure{
  1844. completion(.timeOut())
  1845. }
  1846. if response.response?.statusCode == nil {
  1847. completion(.timeOut())
  1848. }
  1849. guard (response.response?.statusCode == 200) else {
  1850. if response.response?.statusCode == 401 {
  1851. completion(.updateAccessCode())
  1852. } else if response.response?.statusCode == 403 {
  1853. completion(.logOutUser())
  1854. } else {
  1855. completion(.failure(JSON(response.data!)))
  1856. }
  1857. return
  1858. }
  1859. completion(.success(JSON(response.data!)))
  1860. }
  1861. }
  1862. //UPDATE Social Feeds
  1863. func updateSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  1864. let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId
  1865. let manager = Alamofire.SessionManager.default
  1866. manager.session.configuration.timeoutIntervalForRequest = 60
  1867. manager.session.configuration.timeoutIntervalForResource = 60
  1868. manager.request(URL(string: url)!,
  1869. method: .put,
  1870. parameters: param,
  1871. encoding: JSONEncoding.default,
  1872. headers: getContentHeaderAfterLogin())
  1873. .responseJSON { (response) -> Void in
  1874. let error = response.result.error
  1875. if error?._code == NSURLErrorTimedOut {
  1876. completion(.timeOut())
  1877. }
  1878. if response.result.isFailure{
  1879. completion(.timeOut())
  1880. }
  1881. if response.response?.statusCode == nil {
  1882. completion(.timeOut())
  1883. }
  1884. guard (response.response?.statusCode == 200) else {
  1885. if response.response?.statusCode == 401 {
  1886. completion(.updateAccessCode())
  1887. } else if response.response?.statusCode == 403 {
  1888. completion(.logOutUser())
  1889. } else {
  1890. completion(.failure(JSON(response.data!)))
  1891. }
  1892. return
  1893. }
  1894. completion(.success(JSON(response.data!)))
  1895. }
  1896. }
  1897. //DELETE Social Feeds
  1898. func deleteSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  1899. let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId
  1900. let manager = Alamofire.SessionManager.default
  1901. manager.session.configuration.timeoutIntervalForRequest = 60
  1902. manager.session.configuration.timeoutIntervalForResource = 60
  1903. manager.request(URL(string: url)!,
  1904. method: .delete,
  1905. parameters: param,
  1906. encoding: URLEncoding.queryString,
  1907. headers: getContentHeaderAfterLogin())
  1908. .responseJSON { (response) -> Void in
  1909. let error = response.result.error
  1910. if error?._code == NSURLErrorTimedOut {
  1911. completion(.timeOut())
  1912. }
  1913. if response.result.isFailure{
  1914. completion(.timeOut())
  1915. }
  1916. if response.response?.statusCode == nil {
  1917. completion(.timeOut())
  1918. }
  1919. guard (response.response?.statusCode == 204) else {
  1920. if response.response?.statusCode == 401 {
  1921. completion(.updateAccessCode())
  1922. } else if response.response?.statusCode == 403 {
  1923. completion(.logOutUser())
  1924. } else {
  1925. completion(.failure(JSON(response.data!)))
  1926. }
  1927. return
  1928. }
  1929. completion(.success(JSON(response.data!)))
  1930. }
  1931. }
  1932. //DELETE Social Feeds
  1933. func reportSocialFeed(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  1934. let url = UrlManager.sharedInstance.getCRUDFeedURL() + "/" + feedId + "/reports?"
  1935. let manager = Alamofire.SessionManager.default
  1936. manager.session.configuration.timeoutIntervalForRequest = 60
  1937. manager.session.configuration.timeoutIntervalForResource = 60
  1938. manager.request(URL(string: url)!,
  1939. method: .post,
  1940. parameters: param,
  1941. encoding: JSONEncoding.default,
  1942. headers: getContentHeaderAfterLogin())
  1943. .responseJSON { (response) -> Void in
  1944. let error = response.result.error
  1945. if error?._code == NSURLErrorTimedOut {
  1946. completion(.timeOut())
  1947. }
  1948. if response.result.isFailure{
  1949. completion(.timeOut())
  1950. }
  1951. if response.response?.statusCode == nil {
  1952. completion(.timeOut())
  1953. }
  1954. guard (response.response?.statusCode == 201) else {
  1955. if response.response?.statusCode == 401 {
  1956. completion(.updateAccessCode())
  1957. } else if response.response?.statusCode == 403 {
  1958. completion(.logOutUser())
  1959. } else {
  1960. completion(.failure(JSON(response.data!)))
  1961. }
  1962. return
  1963. }
  1964. completion(.success(JSON(response.data!)))
  1965. }
  1966. }
  1967. //Multipart Image Upload
  1968. func uploadImage(imageData: Any, isGif: Bool, param : [String:String], completion : @escaping (ApiResult) -> Void) {
  1969. var fileName: String!
  1970. var mimeType: String!
  1971. var data: Data!
  1972. if isGif {
  1973. fileName = "test.gif"
  1974. mimeType = "image/gif"
  1975. data = imageData as! Data
  1976. } else {
  1977. fileName = "test.jpg"
  1978. mimeType = "image/jpeg"
  1979. data = UIImageJPEGRepresentation(imageData as! UIImage, 0.25)!
  1980. }
  1981. let manager = Alamofire.SessionManager.default
  1982. manager.session.configuration.timeoutIntervalForRequest = 60
  1983. manager.session.configuration.timeoutIntervalForResource = 60
  1984. manager.upload(
  1985. multipartFormData: { multipartFormData in
  1986. multipartFormData.append(data, withName: "file", fileName: fileName, mimeType: mimeType)
  1987. for (key,value) in param {
  1988. multipartFormData.append(value.data(using: .utf8)!, withName: key)
  1989. }
  1990. },
  1991. to: URL(string: UrlManager.sharedInstance.multipartImageUploadURL())!,
  1992. method: .post,
  1993. headers: getContentHeaderAfterLogin(),
  1994. encodingCompletion: { encodingResult in
  1995. switch encodingResult {
  1996. case .success(let upload, _, _):
  1997. upload.responseJSON { response in
  1998. if let error = response.result.error {
  1999. if error._code == NSURLErrorTimedOut {
  2000. completion(.timeOut())
  2001. }
  2002. }
  2003. if response.result.isFailure{
  2004. completion(.timeOut())
  2005. }
  2006. if response.response?.statusCode == nil {
  2007. return
  2008. }
  2009. guard (response.response?.statusCode == 201) else {
  2010. if response.response?.statusCode == 401 {
  2011. completion(.updateAccessCode())
  2012. } else if response.response?.statusCode == 403 {
  2013. completion(.logOutUser())
  2014. } else {
  2015. completion(.failure(JSON(response.data!)))
  2016. }
  2017. return
  2018. }
  2019. completion(.success(JSON(response.data!)))
  2020. }
  2021. case .failure(_):
  2022. return
  2023. }
  2024. })
  2025. }
  2026. //LIKE OR DISLIKE Social Feed
  2027. func likeDislikeSocialFeed(feedId: String, isLiked: Bool, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2028. var methodType: HTTPMethod!
  2029. if isLiked {
  2030. methodType = .delete
  2031. } else {
  2032. methodType = .post
  2033. }
  2034. let manager = Alamofire.SessionManager.default
  2035. manager.session.configuration.timeoutIntervalForRequest = 60
  2036. manager.session.configuration.timeoutIntervalForResource = 60
  2037. manager.request(URL(string: UrlManager.sharedInstance.getLikeDislikeFeedURL(feedId: feedId))!,
  2038. method: methodType,
  2039. parameters: param,
  2040. encoding: URLEncoding.queryString,
  2041. headers: getContentHeaderAfterLogin())
  2042. .responseJSON { (response) -> Void in
  2043. let error = response.result.error
  2044. if error?._code == NSURLErrorTimedOut {
  2045. completion(.timeOut())
  2046. }
  2047. if response.result.isFailure{
  2048. completion(.timeOut())
  2049. }
  2050. guard response.response?.statusCode != nil else {
  2051. completion(.timeOut())
  2052. return
  2053. }
  2054. switch response.response?.statusCode {
  2055. case 204?, 201?:
  2056. completion(.success(JSON(response.data!)))
  2057. case 401?:
  2058. completion(.updateAccessCode())
  2059. case 403?:
  2060. completion(.logOutUser())
  2061. default:
  2062. completion(.failure(JSON(response.data!)))
  2063. }
  2064. }
  2065. }
  2066. //LIKES for Social Feed
  2067. func getAllLikesFor(feedId: String, completion: @escaping (ApiResult) -> Void) {
  2068. let manager = Alamofire.SessionManager.default
  2069. manager.session.configuration.timeoutIntervalForRequest = 60
  2070. manager.session.configuration.timeoutIntervalForResource = 60
  2071. manager.request(URL(string: UrlManager.sharedInstance.getLikeDislikeFeedURL(feedId: feedId))!,
  2072. method: .get,
  2073. headers: getContentHeaderAfterLogin())
  2074. .responseJSON { (response) -> Void in
  2075. let error = response.result.error
  2076. if error?._code == NSURLErrorTimedOut {
  2077. completion(.timeOut())
  2078. }
  2079. if response.result.isFailure{
  2080. completion(.timeOut())
  2081. }
  2082. if response.response?.statusCode == nil {
  2083. completion(.timeOut())
  2084. }
  2085. guard (response.response?.statusCode == 200) else {
  2086. if response.response?.statusCode == 401 {
  2087. completion(.updateAccessCode())
  2088. } else if response.response?.statusCode == 403 {
  2089. completion(.logOutUser())
  2090. } else {
  2091. completion(.failure(JSON(response.data!)))
  2092. }
  2093. return
  2094. }
  2095. completion(.success(JSON(response.data!)))
  2096. }
  2097. }
  2098. //COMMENTS for Social Feed
  2099. func getAllCommentsFor(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2100. let manager = Alamofire.SessionManager.default
  2101. manager.session.configuration.timeoutIntervalForRequest = 60
  2102. manager.session.configuration.timeoutIntervalForResource = 60
  2103. manager.request(URL(string: UrlManager.sharedInstance.getCommentFeedURL(feedId: feedId))!,
  2104. method: .get,
  2105. parameters: param,
  2106. encoding: URLEncoding.queryString,
  2107. headers: getContentHeaderAfterLogin())
  2108. .responseJSON { (response) -> Void in
  2109. let error = response.result.error
  2110. if error?._code == NSURLErrorTimedOut {
  2111. completion(.timeOut())
  2112. }
  2113. if response.result.isFailure{
  2114. completion(.timeOut())
  2115. }
  2116. if response.response?.statusCode == nil {
  2117. return
  2118. }
  2119. guard (response.response?.statusCode == 200) else {
  2120. if response.response?.statusCode == 401 {
  2121. completion(.updateAccessCode())
  2122. } else if response.response?.statusCode == 403 {
  2123. completion(.logOutUser())
  2124. } else {
  2125. completion(.failure(JSON(response.data!)))
  2126. }
  2127. return
  2128. }
  2129. completion(.success(JSON(response.data!)))
  2130. }
  2131. }
  2132. //CREATE NEW COMMENT
  2133. func createComment(feedId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2134. let manager = Alamofire.SessionManager.default
  2135. manager.session.configuration.timeoutIntervalForRequest = 60
  2136. manager.session.configuration.timeoutIntervalForResource = 60
  2137. manager.request(URL(string: UrlManager.sharedInstance.getCreateCommentURL(feedId: feedId))!,
  2138. method: .post,
  2139. parameters: param,
  2140. encoding: JSONEncoding.default,
  2141. headers: getContentHeaderAfterLogin())
  2142. .responseJSON { (response) -> Void in
  2143. let error = response.result.error
  2144. if error?._code == NSURLErrorTimedOut {
  2145. completion(.timeOut())
  2146. }
  2147. if response.result.isFailure{
  2148. completion(.timeOut())
  2149. }
  2150. if response.response?.statusCode == nil {
  2151. return
  2152. }
  2153. guard (response.response?.statusCode == 201) else {
  2154. if response.response?.statusCode == 401 {
  2155. completion(.updateAccessCode())
  2156. } else if response.response?.statusCode == 403 {
  2157. completion(.logOutUser())
  2158. } else {
  2159. completion(.failure(JSON(response.data!)))
  2160. }
  2161. return
  2162. }
  2163. completion(.success(JSON(response.data!)))
  2164. }
  2165. }
  2166. //EDIT COMMENT
  2167. func editComment(feedId: String, commentId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2168. let manager = Alamofire.SessionManager.default
  2169. manager.session.configuration.timeoutIntervalForRequest = 60
  2170. manager.session.configuration.timeoutIntervalForResource = 60
  2171. manager.request(URL(string: UrlManager.sharedInstance.getEditDeleteCommentURL(feedId: feedId, commentId: commentId))!,
  2172. method: .put,
  2173. parameters: param,
  2174. encoding: JSONEncoding.default,
  2175. headers: getContentHeaderAfterLogin())
  2176. .responseJSON { (response) -> Void in
  2177. let error = response.result.error
  2178. if error?._code == NSURLErrorTimedOut {
  2179. completion(.timeOut())
  2180. }
  2181. if response.result.isFailure{
  2182. completion(.timeOut())
  2183. }
  2184. if response.response?.statusCode == nil {
  2185. completion(.timeOut())
  2186. }
  2187. guard (response.response?.statusCode == 200) else {
  2188. if response.response?.statusCode == 401 {
  2189. completion(.updateAccessCode())
  2190. } else if response.response?.statusCode == 403 {
  2191. completion(.logOutUser())
  2192. } else {
  2193. completion(.failure(JSON(response.data!)))
  2194. }
  2195. return
  2196. }
  2197. completion(.success(JSON(response.data!)))
  2198. }
  2199. }
  2200. //REMOVE COMMENT
  2201. func deleteComment(feedId: String, commentId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2202. let manager = Alamofire.SessionManager.default
  2203. manager.session.configuration.timeoutIntervalForRequest = 60
  2204. manager.session.configuration.timeoutIntervalForResource = 60
  2205. manager.request(URL(string: UrlManager.sharedInstance.getEditDeleteCommentURL(feedId: feedId, commentId: commentId))!,
  2206. method: .delete,
  2207. parameters: param,
  2208. encoding: URLEncoding.queryString,
  2209. headers: getContentHeaderAfterLogin())
  2210. .responseJSON { (response) -> Void in
  2211. let error = response.result.error
  2212. if error?._code == NSURLErrorTimedOut {
  2213. completion(.timeOut())
  2214. }
  2215. if response.result.isFailure{
  2216. completion(.timeOut())
  2217. }
  2218. if response.response?.statusCode == nil {
  2219. return
  2220. }
  2221. guard (response.response?.statusCode == 204) else {
  2222. if response.response?.statusCode == 401 {
  2223. completion(.updateAccessCode())
  2224. } else if response.response?.statusCode == 403 {
  2225. completion(.logOutUser())
  2226. } else {
  2227. completion(.failure(JSON(response.data!)))
  2228. }
  2229. return
  2230. }
  2231. completion(.success(JSON(response.data!)))
  2232. }
  2233. }
  2234. //FETCH REWARDS
  2235. func fetchRewards(completion: @escaping (ApiResult) -> Void) {
  2236. let manager = Alamofire.SessionManager.default
  2237. manager.session.configuration.timeoutIntervalForRequest = 60
  2238. manager.session.configuration.timeoutIntervalForResource = 60
  2239. manager.request(URL(string: UrlManager.sharedInstance.getRewardsURL())!,
  2240. method: .get,
  2241. headers: getContentHeaderAfterLogin())
  2242. .responseJSON { (response) -> Void in
  2243. let error = response.result.error
  2244. if error?._code == NSURLErrorTimedOut {
  2245. completion(.timeOut())
  2246. }
  2247. if response.result.isFailure{
  2248. completion(.timeOut())
  2249. }
  2250. if response.response?.statusCode == nil {
  2251. completion(.timeOut())
  2252. }
  2253. guard (response.response?.statusCode == 200) else {
  2254. if response.response?.statusCode == 401 {
  2255. completion(.updateAccessCode())
  2256. } else if response.response?.statusCode == 403 {
  2257. completion(.logOutUser())
  2258. } else {
  2259. completion(.failure(JSON(response.data!)))
  2260. }
  2261. return
  2262. }
  2263. completion(.success(JSON(response.data!)))
  2264. }
  2265. }
  2266. //REDEEM REWARD
  2267. func redeemReward(rewardId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2268. let manager = Alamofire.SessionManager.default
  2269. manager.session.configuration.timeoutIntervalForRequest = 60
  2270. manager.session.configuration.timeoutIntervalForResource = 60
  2271. manager.request(URL(string: UrlManager.sharedInstance.getRedeemRewardURL(rewardId: rewardId))!,
  2272. method: .post,
  2273. parameters: param,
  2274. encoding: JSONEncoding.default,
  2275. headers: getContentHeaderAfterLogin())
  2276. .responseJSON { (response) -> Void in
  2277. let error = response.result.error
  2278. if error?._code == NSURLErrorTimedOut {
  2279. completion(.timeOut())
  2280. }
  2281. if response.result.isFailure{
  2282. completion(.timeOut())
  2283. }
  2284. if response.response?.statusCode == nil {
  2285. return
  2286. }
  2287. guard (response.response?.statusCode == 201) else {
  2288. if response.response?.statusCode == 401 {
  2289. completion(.updateAccessCode())
  2290. } else if response.response?.statusCode == 403 {
  2291. completion(.logOutUser())
  2292. } else {
  2293. completion(.failure(JSON(response.data!)))
  2294. }
  2295. return
  2296. }
  2297. completion(.success(JSON(response.data!)))
  2298. }
  2299. }
  2300. /**
  2301. GET CURRENCIES
  2302. */
  2303. func getCurrencies(param: [String: String],completion: @escaping (ApiResult) -> Void) {
  2304. let manager = Alamofire.SessionManager.default
  2305. manager.session.configuration.timeoutIntervalForRequest = 60
  2306. manager.session.configuration.timeoutIntervalForResource = 60
  2307. manager.request(
  2308. URL(string: UrlManager.sharedInstance.getCurrencyURL())!,
  2309. method: .get,
  2310. parameters: param,
  2311. encoding: URLEncoding.queryString,
  2312. headers: getContentHeaderAfterLogin()
  2313. ).responseJSON { (response) -> Void in
  2314. let error = response.result.error
  2315. if error?._code == NSURLErrorTimedOut {
  2316. completion(.timeOut())
  2317. }
  2318. if response.result.isFailure{
  2319. completion(.timeOut())
  2320. }
  2321. if response.response?.statusCode == nil {
  2322. completion(.timeOut())
  2323. }
  2324. guard (response.response?.statusCode == 200) else {
  2325. if response.response?.statusCode == 401{
  2326. completion(.updateAccessCode())
  2327. } else if response.response?.statusCode == 403 {
  2328. completion(.logOutUser())
  2329. } else {
  2330. completion(.failure(JSON(response.data!)))
  2331. }
  2332. return
  2333. }
  2334. completion(.success(JSON(response.data!)))
  2335. }
  2336. }
  2337. /**
  2338. GET Exchange Rate
  2339. */
  2340. func getExchangeRates(param: [String: Any], completion: @escaping (ApiResult) -> Void) {
  2341. let manager = Alamofire.SessionManager.default
  2342. manager.session.configuration.timeoutIntervalForRequest = 60
  2343. manager.session.configuration.timeoutIntervalForResource = 60
  2344. manager.request(
  2345. URL(string: UrlManager.sharedInstance.getExchangeRateURL())!,
  2346. method: .post,
  2347. parameters: param,
  2348. encoding: JSONEncoding.default,
  2349. headers: getContentHeaderAfterLogin()
  2350. ).responseJSON { (response) -> Void in
  2351. let error = response.result.error
  2352. if error?._code == NSURLErrorTimedOut {
  2353. completion(.timeOut())
  2354. }
  2355. if response.result.isFailure{
  2356. completion(.timeOut())
  2357. }
  2358. if response.response?.statusCode == nil {
  2359. return
  2360. }
  2361. guard (response.response?.statusCode == 200) else {
  2362. if response.response?.statusCode == 401{
  2363. completion(.updateAccessCode())
  2364. } else if response.response?.statusCode == 403 {
  2365. completion(.logOutUser())
  2366. } else {
  2367. completion(.failure(JSON(response.data!)))
  2368. }
  2369. return
  2370. }
  2371. completion(.success(JSON(response.data!)))
  2372. }
  2373. }
  2374. //UPDATE USER DETAIL (NOT KYC)
  2375. //USE THIS FUNCTION TO UPDATE USER PROFILE IMAGE AND CMREGISTRATION CODE
  2376. func updateUserDetail(userId: String, param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2377. let manager = Alamofire.SessionManager.default
  2378. manager.session.configuration.timeoutIntervalForRequest = 60
  2379. manager.session.configuration.timeoutIntervalForResource = 60
  2380. manager.request(
  2381. URL(string: UrlManager.sharedInstance.getUserUpdateURL(userId: userId))!,
  2382. method: .patch,
  2383. parameters: param,
  2384. encoding: JSONEncoding.default,
  2385. headers: getContentHeaderAfterLogin()
  2386. ).responseJSON { (response) -> Void in
  2387. let error = response.result.error
  2388. if error?._code == NSURLErrorTimedOut {
  2389. completion(.timeOut())
  2390. }
  2391. if response.result.isFailure{
  2392. completion(.timeOut())
  2393. }
  2394. if response.response?.statusCode == nil {
  2395. completion(.timeOut())
  2396. }
  2397. guard (response.response?.statusCode == 200) else {
  2398. if response.response?.statusCode == 401{
  2399. completion(.updateAccessCode())
  2400. } else if response.response?.statusCode == 403 {
  2401. completion(.logOutUser())
  2402. } else{
  2403. completion(.failure(JSON(response.data!)))
  2404. }
  2405. return
  2406. }
  2407. completion(.success(JSON(response.data!)))
  2408. }
  2409. }
  2410. func validateReferralCode(param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2411. let manager = Alamofire.SessionManager.default
  2412. manager.session.configuration.timeoutIntervalForRequest = 60
  2413. manager.session.configuration.timeoutIntervalForResource = 60
  2414. manager.request(
  2415. URL(string: UrlManager.sharedInstance.getReferralCodeValidationURL())!,
  2416. method: .post,
  2417. parameters: param,
  2418. encoding: JSONEncoding.default,
  2419. headers: getContentHeaderAfterLogin()
  2420. ).responseJSON { (response) -> Void in
  2421. if let error = response.result.error {
  2422. if error._code == NSURLErrorTimedOut {
  2423. completion(.timeOut())
  2424. }
  2425. }
  2426. if response.result.isFailure{
  2427. completion(.timeOut())
  2428. }
  2429. if response.response?.statusCode == nil {
  2430. return
  2431. }
  2432. guard (response.response?.statusCode == 200) else {
  2433. if response.response?.statusCode == 401{
  2434. completion(.updateAccessCode())
  2435. } else if response.response?.statusCode == 403 {
  2436. completion(.logOutUser())
  2437. } else {
  2438. completion(.failure(JSON(response.data!)))
  2439. }
  2440. return
  2441. }
  2442. completion(.success(JSON(response.data!)))
  2443. }
  2444. }
  2445. func rejectMoneyRequest(param: [String: String], completion: @escaping (ApiResult) -> Void) {
  2446. let manager = Alamofire.SessionManager.default
  2447. manager.session.configuration.timeoutIntervalForRequest = 60
  2448. manager.session.configuration.timeoutIntervalForResource = 60
  2449. manager.request(
  2450. URL(string: UrlManager.sharedInstance.getRejectMoneyRequestURL())!,
  2451. method: .post,
  2452. parameters: param,
  2453. encoding: JSONEncoding.default,
  2454. headers: getContentHeaderAfterLogin()
  2455. ).responseJSON { (response) -> Void in
  2456. if let error = response.result.error {
  2457. if error._code == NSURLErrorTimedOut {
  2458. completion(.timeOut())
  2459. }
  2460. }
  2461. if response.result.isFailure{
  2462. completion(.timeOut())
  2463. }
  2464. if response.response?.statusCode == nil {
  2465. return
  2466. }
  2467. guard (response.response?.statusCode == 200) else {
  2468. if response.response?.statusCode == 401{
  2469. completion(.updateAccessCode())
  2470. } else if response.response?.statusCode == 403 {
  2471. completion(.logOutUser())
  2472. } else {
  2473. completion(.failure(JSON(response.data!)))
  2474. }
  2475. return
  2476. }
  2477. completion(.success(JSON(response.data!)))
  2478. }
  2479. }
  2480. func getParticularSocialFeed(feedId: String, param : [String: String], completion : @escaping (ApiResult) -> Void){
  2481. let manager = Alamofire.SessionManager.default
  2482. manager.session.configuration.timeoutIntervalForRequest = 60
  2483. manager.session.configuration.timeoutIntervalForResource = 60
  2484. manager.request(
  2485. URL(string : (UrlManager.sharedInstance.getParticularFeedURL(feedId: feedId)))!,
  2486. method: .get,
  2487. parameters: param,
  2488. encoding: URLEncoding.queryString,
  2489. headers: getContentHeaderAfterLogin())
  2490. .responseJSON { (response) -> Void in
  2491. let error = response.result.error
  2492. if error?._code == NSURLErrorTimedOut {
  2493. completion(.timeOut())
  2494. }
  2495. if response.result.isFailure{
  2496. completion(.timeOut())
  2497. }
  2498. if response.response?.statusCode == nil {
  2499. completion(.timeOut())
  2500. }
  2501. guard (response.response?.statusCode == 200) else {
  2502. if response.response?.statusCode == 401 {
  2503. completion(.updateAccessCode())
  2504. } else if response.response?.statusCode == 403 {
  2505. completion(.logOutUser())
  2506. } else {
  2507. completion(.failure(JSON(response.data!)))
  2508. }
  2509. return
  2510. }
  2511. completion(.success(JSON(response.data!)))
  2512. }
  2513. }
  2514. func cancelExistingNetworkCalls() {
  2515. let sessionManager = Alamofire.SessionManager.default
  2516. sessionManager.session.getTasksWithCompletionHandler { dataTasks, uploadTasks, downloadTasks in
  2517. dataTasks.forEach { $0.cancel() }
  2518. uploadTasks.forEach { $0.cancel() }
  2519. downloadTasks.forEach { $0.cancel() }
  2520. }
  2521. }
  2522. }