123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- //
- // NonEMIViewModel.swift
- // Product Calculator
- //
- // Created by Suraj Kumar Mandal on 07/12/21.
- //
- import Foundation
- import Alamofire
- class NonEMIViewModel {
-
- var delegate: NonEMIViewProtocol?
-
- var nonEmiModel = [EMILoanOriginalModel]()
-
- //POST Non-EMI Base Loan API
- func getNonEMILoan(loanAmount:String, interestRate:String, loanTenure:String, interestPaymentFrequency:String, loanStartDate:String) {
- if let delegate = delegate {
- delegate.startLoader()
- let url = ApiUrl.BASE_URL + ApiUrl.GET_NON_EMI_LOAN
-
- var interest = String()
- switch interestPaymentFrequency {
- case "Monthly":
- interest = "12"
- case "Bi-Monthly":
- interest = "6"
- case "Quarterly":
- interest = "4"
- case "Triannually":
- interest = "3"
- case "Half Yearly":
- interest = "2"
- case "Annually":
- interest = "1"
- default:
- interest = ""
- }
-
- let parameters: [String: String] = [
- "loanAmount": loanAmount,
- "interestRate": interestRate,
- "loanTenure": loanTenure,
- "interestPaymentFrequency": interest,
- "loanStartDate": loanStartDate
- ]
- print(parameters)
-
- AF.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default).responseJSON { response in
-
- switch response.result {
- case .success(let value):
- delegate.stopLoader()
- print(value)
- let data = value as! NSDictionary
- print(data)
- DispatchQueue.main.async {
- let loanCategory = data["loanCategory"] as? Int
- let loanCategoryLabel = data["loanCategoryLabel"] as? String
- let loanDiscription = data["loanDiscription"] as? String
- let loanProvider = data["loanProvider"] as? String
- let loanType = data["loanType"] as? Int
- let loanTypeLabel = data["loanTypeLabel"] as? String
- let loanAmount = data["loanAmount"] as? Double
- let interestRate = data["interestRate"] as! Double
- let loanTenure = data["loanTenure"] as! Int
- let loanStartDate = data["loanStartDate"] as? String
- let numberOfEMI = data["numberOfEMI"] as! Int
- let emiAmount = data["emiAmount"] as! Double
- let loanEndDate = data["loanEndDate"] as! String
- let interestPaymentFrequency = data["interestPaymentFrequency"] as! Int
- let totalInterestPaid = data["totalInterestPaid"] as! Double
- let loan_original_flag = data["loan_original_flag"] as? String
- let displayDate = data["displayDate"] as? String
-
- let nonEmiData = EMILoanOriginalModel(loanCategoryLabel: loanCategoryLabel ?? "", loanDiscription: loanDiscription ?? "", loanProvider: loanProvider ?? "", loanTypeLabel: loanTypeLabel ?? "", loanStartDate: loanStartDate ?? "", loanEndDate: loanEndDate, loan_original_flag: loan_original_flag ?? "", displayDate: displayDate ?? "", loanCategory: loanCategory ?? 0, loanType: loanType ?? 0, loanTenure: loanTenure, numberOfEMI: numberOfEMI, interestPaymentFrequency: interestPaymentFrequency, loanAmount: loanAmount ?? 0.0 , interestRate: interestRate, emiAmount: emiAmount, totalInterestPaid: totalInterestPaid)
-
- self.nonEmiModel.append(nonEmiData)
- delegate.navigate(nonEmiData)
- }
-
- case .failure(let error):
- delegate.stopLoader()
- print(error)
- //delegate.showError(error: error)
- }
- }
- }
- }
-
- }
- protocol NonEMIViewProtocol {
- func startLoader()
- func stopLoader()
- func showError(error:String)
- func navigate(_ data:EMILoanOriginalModel)
- }
|