86 lines
3.0 KiB
Swift
86 lines
3.0 KiB
Swift
//
|
|
// MyOrdersVM.swift
|
|
// WOKA
|
|
//
|
|
// Created by MacBook Pro on 30/07/24.
|
|
//
|
|
|
|
import UIKit
|
|
import Alamofire
|
|
|
|
class MyOrdersVM{
|
|
|
|
weak var vc : MyOrdersVC!
|
|
var cartButton: UIBarButtonItem!
|
|
var pageNo = 1
|
|
var orderData = [OrderListingDM.Datum]()
|
|
|
|
func initView(){
|
|
|
|
vc.title = "MY ORDERS".localized(loc: AuthFunc.shareInstance.languageSelected.rawValue)
|
|
|
|
cartButton = BadgeBarBtn.shared.setupCartButton(target: self, action: #selector(self.cartButtonTapped))
|
|
self.vc.navigationItem.rightBarButtonItem = cartButton
|
|
|
|
//check if cart is not fetched
|
|
if !CartDataCache.isFetched{
|
|
CartDataCache.shareInstance.getCartList(vc: self.vc) { [weak self] isDone in
|
|
guard let self else{return}
|
|
if isDone{
|
|
if let button = cartButton.customView as? UIButton {
|
|
BadgeBarBtn.shared.updateBadge(for: button, with: CartDataCache.cartListData.count.toString())
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
setupCell()
|
|
getOrders()
|
|
}
|
|
|
|
func setupCell(){
|
|
vc.tableView.register(UINib(nibName: K.CellIdentifier.SideBarNav.myOrderCell, bundle: nil), forCellReuseIdentifier: K.CellIdentifier.SideBarNav.myOrderCell)
|
|
vc.tableView.delegate = vc.self
|
|
vc.tableView.dataSource = vc.self
|
|
}
|
|
|
|
@objc func cartButtonTapped(){
|
|
if AuthFunc.shareInstance.guestUserLoginPopUp() { return}
|
|
|
|
let sb = UIStoryboard(name: K.StoryBoard.cart, bundle: nil)
|
|
let vcPush = sb.instantiateViewController(withIdentifier: K.StoryBoardID.Cart.cartListVC) as! CartListVC
|
|
self.vc.navigationController?.pushViewController(vcPush, animated: true)
|
|
}
|
|
|
|
// MARK: - Get MyORders
|
|
|
|
func getOrders(){
|
|
Utilities.startProgressHUD()
|
|
let headers : HTTPHeaders = ["Accept-Language" : AuthFunc.shareInstance.languageSelected == .english ? "English" : "Hindi",
|
|
"access-token": AuthFunc.shareInstance.getAccessToken()]
|
|
let params : Parameters = ["limit" : "10"]
|
|
let url = "\(APIEndPoints.SideBarNav.order_listing )?page=\(pageNo)"
|
|
NetworkManager.shareInstance.apiRequest(url: url, method: .post, parameters: params,headers : headers) {(result : Result<BaseResponseModel<OrderListingDM>, NetworkManager.APIError>) in
|
|
switch result{
|
|
case .success(let data):
|
|
switch data.success{
|
|
case 0:
|
|
Utilities.dismissProgressHUD()
|
|
return
|
|
case 1:
|
|
Utilities.dismissProgressHUD()
|
|
guard let data = data.data?.result?.data else{return}
|
|
self.orderData = data
|
|
self.vc.tableView.reloadData()
|
|
default:
|
|
break
|
|
}
|
|
case .failure(let error):
|
|
Utilities.dismissProgressHUD()
|
|
print(error)
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|