Files
Woka_Native_iOS/WOKA/Address/ViewModel/AddNewAddressVM.swift
BilalKhanWDI edcb7c4e29 - Handled cc avenue payment web view
- Added analytics and crashlytics.
- Completed add address
- Completed payment , added callback handler
2024-07-29 20:04:40 +05:30

102 lines
4.0 KiB
Swift

//
// AddNewAddressVM.swift
// WOKA
//
// Created by MacBook Pro on 29/07/24.
//
import UIKit
import Alamofire
class AddNewAddressVM{
weak var vc : AddNewAddressVC!
var pincode = String()
func initView(){
vc.title = "ADDRESS DETAILS".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
addGradient()
vc.enterAddressNAmeTF.delegate = self.vc
vc.addressLine1TF.delegate = self.vc
vc.addressLine2TF.delegate = self.vc
vc.cityTF.delegate = self.vc
vc.stateTF.delegate = self.vc
vc.countryTF.delegate = self.vc
vc.phoneNumberTF.delegate = self.vc
vc.enterAddressNAmeTF.roundCorner()
vc.addressLine1TF.roundCorner()
vc.addressLine2TF.roundCorner()
vc.cityTF.roundCorner()
vc.stateTF.roundCorner()
vc.countryTF.roundCorner()
vc.phoneNumberTF.roundCorner()
vc.pinCodeTF.roundCorner()
vc.pinCodeTF.text = pincode
}
func addGradient(){
let color1 = #colorLiteral(red: 0.6745098039, green: 0.6235294118, blue: 0.1725490196, alpha: 1)
let color2 = #colorLiteral(red: 0.5450980392, green: 0.6745098039, blue: 0.1725490196, alpha: 1)
vc.view.applyGradient(colors: [color2, color1], startPoint: CGPoint(x: 0, y: 0), endPoint: CGPoint(x: 0.8, y: 0))
}
func addAddress(){
Utilities.startProgressHUD()
let address = (vc.addressLine1TF.text ?? "") + ", " + (vc.addressLine2TF.text ?? "")
let headers : HTTPHeaders = ["access-token" : AuthFunc.shareInstance.getAccessToken()]
let params : Parameters = ["address_name" : vc.enterAddressNAmeTF.text!,
"address" : address,
"city" : vc.cityTF.text!,
"state" : vc.stateTF.text!,
"pincode" : vc.pinCodeTF.text!,
"mobile_number" : vc.phoneNumberTF.text!]
NetworkManager.shareInstance.apiRequest(url: APIEndPoints.Address.add_parent_address, method: .post, parameters: params,headers: headers) { [weak self](result : Result<BaseResponseModel<AddressListDM>, NetworkManager.APIError>) in
switch result{
case .success(let data):
guard let self else{
Utilities.dismissProgressHUD()
return
}
switch data.success{
case 0:
/*
Error
*/
Utilities.dismissProgressHUD()
case 1:
Utilities.dismissProgressHUD()
self.vc.toast(msg: data.message ?? "Address Added", time: 2) {
guard let data = data.data else{return}
CartDataCache.addressData.append(data)
//set the newly added address as default
guard let navigationController = self.vc.navigationController else {
print("Not in a navigation controller")
return
}
if let targetController = navigationController.viewControllers.first(where: { $0 is AddressListVC }) {
navigationController.popToViewController(targetController, animated: true)
} else {
print("Target view controller not found in the navigation stack")
}
}
default:
Utilities.dismissProgressHUD()
break
}
case .failure(let error):
guard let self else{
Utilities.dismissProgressHUD()
return
}
Utilities.dismissProgressHUD()
Utilities.alert(title: "Error", message: error.localizedDescription, viewController: self.vc)
}
}
}
}