DashboardViewModel.swift 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. //
  2. // DashboardViewModel.swift
  3. // LMS
  4. //
  5. // Created by Suraj Kumar Mandal on 02/09/22.
  6. //
  7. import Foundation
  8. import Alamofire
  9. class DashboardViewModel {
  10. var delegate: DashboardProtocol?
  11. func getSessionList(userId:Int, interventionId:Any, batchId:Any, schoolId:Any, interventionLevelId:Any, month:Any) {
  12. if let delegate = delegate {
  13. delegate.startLoader()
  14. let url = ApiURL.GetSessionList + "/\(userId)/filter"
  15. print(url)
  16. let accessToken = UserDefaults.standard.value(forKey: "accessToken") as! String
  17. let headers: HTTPHeaders = [
  18. "Authorization": "Bearer \(accessToken)",
  19. "Accept": "application/json",
  20. "Content-Type": "application/json"
  21. ]
  22. print(headers)
  23. let parameters: [String: Any] = [
  24. "interventionId" : interventionId,
  25. "batchId" : batchId,
  26. "schoolId" : schoolId,
  27. "interventionLevelId" : interventionLevelId,
  28. "statuses" : [],
  29. "inmonth" : month
  30. ]
  31. print(parameters)
  32. AF.request(url,
  33. method: .post,
  34. parameters: parameters,
  35. encoding: JSONEncoding.default,
  36. headers: headers)
  37. .responseJSON { response in
  38. if response.response?.statusCode == 200 {
  39. switch response.result {
  40. case .success(_):
  41. delegate.stopLoader()
  42. guard let jsonData = response.data else {
  43. return
  44. }
  45. let decoder = JSONDecoder()
  46. do {
  47. let sessionListData = try decoder.decode([SessionListModel].self, from: jsonData)
  48. delegate.sessionListModel(model: sessionListData)
  49. print(sessionListData.count)
  50. } catch {
  51. print("getDataList Unexpected error: \(error).")
  52. delegate.showError(error: "getDataList Unexpected error: \(error).")
  53. }
  54. break
  55. case .failure(let error):
  56. delegate.stopLoader()
  57. print(error.localizedDescription)
  58. delegate.showError(error: error.localizedDescription)
  59. break
  60. }
  61. }
  62. }
  63. }
  64. }
  65. func getAssessmentList(userId:Int, month:String) {
  66. if let delegate = delegate {
  67. delegate.startLoader()
  68. let url = ApiURL.GetAssessmentList + "/\(userId)/false"
  69. print(url)
  70. let accessToken = UserDefaults.standard.value(forKey: "accessToken") as! String
  71. let headers: HTTPHeaders = [
  72. "Authorization": "Bearer \(accessToken)",
  73. "Accept": "application/json",
  74. "Content-Type": "application/json"
  75. ]
  76. print(headers)
  77. let parameters: [String: Any] = [
  78. "createdDate" : month,
  79. "statuses" : []
  80. ]
  81. print(parameters)
  82. AF.request(url,
  83. method: .post,
  84. parameters: parameters,
  85. encoding: JSONEncoding.default,
  86. headers: headers)
  87. .responseString { response in
  88. if response.response?.statusCode == 200 {
  89. switch response.result {
  90. case .success(_):
  91. delegate.stopLoader()
  92. guard let jsonData = response.data else {
  93. return
  94. }
  95. let decoder = JSONDecoder()
  96. do {
  97. let assessmentListData = try decoder.decode([AssessmentListModel].self, from: jsonData)
  98. delegate.assessmentListModel(model: assessmentListData)
  99. print(assessmentListData.count)
  100. } catch {
  101. print("getDataList Unexpected error: \(error).")
  102. delegate.showError(error: "getDataList Unexpected error: \(error).")
  103. }
  104. break
  105. case .failure(let error):
  106. delegate.stopLoader()
  107. print(error.localizedDescription)
  108. delegate.showError(error: error.localizedDescription)
  109. break
  110. }
  111. } else {
  112. print("Server error")
  113. }
  114. }
  115. }
  116. }
  117. }
  118. protocol DashboardProtocol {
  119. func startLoader()
  120. func stopLoader()
  121. func showError(error:String)
  122. func sessionListModel(model: [SessionListModel])
  123. func assessmentListModel(model: [AssessmentListModel])
  124. }