// // OfflineAssessmentViewModel.swift // LMS // // Created by Suraj Kumar Mandal on 11/01/23. // import Foundation import Alamofire class OfflineAssessmentViewModel { var delegate: OfflineAssessmentProtocol? func downloadAssessment(fileId:String) { if let delegate = delegate { delegate.startLoader() let accessToken = UserDefaults.standard.value(forKey: "accessToken") as! String let url = ApiURL.DownloadBase64 + "/\(fileId)" print(url) let headers: HTTPHeaders = [ "Authorization": "Bearer \(accessToken)", "Accept": "application/json", "Content-Type": "application/json" ] print(headers) AF.request(url, method: .get, encoding: URLEncoding.httpBody, headers: headers) .responseString { response in if response.response?.statusCode == 200 { switch response.result { case .success(_): delegate.stopLoader() let stringData = response.description.components(separatedBy: ",") delegate.getDownloadedFile(base64:stringData[1]) break case .failure(let error): delegate.stopLoader() print(error.localizedDescription) delegate.showError(error: error.localizedDescription) break } } else { print("Server error") } } } } func uploadAssessment(assessmentId:Int, userId:Int, fileType:String, docData:Data?) { if let delegate = delegate { delegate.startLoader() let accessToken = UserDefaults.standard.value(forKey: "accessToken") as! String let url = ApiURL.UploadAssessment print(url) let headers: HTTPHeaders = [ "Authorization": "Bearer \(accessToken)", "Accept": "application/json", "Content-Type": "application/json" ] print(headers) let params: [String: Any] = [ "assessmentId" : assessmentId, "userId" : userId, "fileType" : fileType ] print(params) let date = Date() let dateFormatter = DateFormatter() dateFormatter.dateFormat = "dd/MM/yyyy" print(dateFormatter.string(from: date)) let imageKey = "file" let fileName = "assessment(\(assessmentId))-\(dateFormatter.string(from: date)).\(fileType)" AF.upload(multipartFormData: { multiPart in for (key, value) in (params ?? [:]) { if let arrayObj = value as? [Any] { for index in 0..