NewAssessmentViewModel.swift 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. //
  2. // NewAssessmentViewModel.swift
  3. // LMS
  4. //
  5. // Created by Suraj Kumar Mandal on 19/10/23.
  6. //
  7. import Foundation
  8. import Alamofire
  9. class NewAssessmentViewModel {
  10. var delegate: NewAssessmentProtocol?
  11. func getNewAssessmentList(userId:Int) {
  12. if let delegate = delegate {
  13. delegate.startLoader()
  14. let accessToken = UserDefaults.standard.value(forKey: "accessToken") as! String
  15. let url = ApiURL.GetNewAssessmentList
  16. print(url)
  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. "createdDate" : "",
  25. "inUserId" : userId,
  26. "isTrainer" : false
  27. ]
  28. print(parameters)
  29. AF.request(url,
  30. method: .post,
  31. parameters: parameters,
  32. encoding: JSONEncoding.default,
  33. headers: headers)
  34. .responseString { response in
  35. if response.response?.statusCode == 200 {
  36. switch response.result {
  37. case .success(_):
  38. delegate.stopLoader()
  39. guard let jsonData = response.data else {
  40. return
  41. }
  42. let decoder = JSONDecoder()
  43. do {
  44. let newAssessmentListData = try decoder.decode([NewAssessmentModel].self, from: jsonData)
  45. delegate.assessmentListModel(model: newAssessmentListData)
  46. print(newAssessmentListData.count)
  47. } catch {
  48. print("getDataList Unexpected error: \(error).")
  49. delegate.showError(error: "getDataList Unexpected error: \(error).")
  50. }
  51. break
  52. case .failure(let error):
  53. delegate.stopLoader()
  54. print(error.localizedDescription)
  55. delegate.showError(error: error.localizedDescription)
  56. break
  57. }
  58. } else {
  59. print("Server error")
  60. }
  61. }
  62. }
  63. }
  64. }
  65. protocol NewAssessmentProtocol {
  66. func startLoader()
  67. func stopLoader()
  68. func showError(error:String)
  69. func assessmentListModel(model: [NewAssessmentModel])
  70. }