import template from './saved-carts.component.html';
(function () {
'use strict';
angular.module('vfApp').component('vfSavedCarts', {
template,
controller: SavedCartsController,
});
SavedCartsController.$inject = ['$location', 'Cart', 'User', 'Utils'];
/**
* @param {Object} $location
* @param {Object} Cart VendorFuel service
* @param {Object} User VendorFuel service
* @param {Object} Utils VendorFuel service
*/
function SavedCartsController($location, Cart, User, Utils) {
const vm = this;
vm.deleteCart = deleteCart;
vm.$onInit = () => {
vm.breadcrumb = [
{
title: 'Home',
link: '/',
},
{
title: 'Saved Carts',
link: '/saved-carts',
},
];
vm.isSignedIn = User.isAuthed && User.email;
vm.isLoading = true;
vm.pageUrls = {
login: Utils.getPageUrl('login', {
redirect_to: $location.path(),
}),
register: Utils.getPageUrl('register'),
};
if (vm.isSignedIn) {
getSavedCarts();
}
};
/**
* @function getSavedCarts
*/
function getSavedCarts() {
Cart.getSavedList().then((list) => {
const carts = [];
angular.forEach(list, (value) => {
const cart = {
id: value.saved_cart_id,
title: value.cart_title,
numItems: value.num_items,
};
carts.push(cart);
});
vm.carts = carts;
vm.isLoading = false;
});
}
/**
* @function deleteCart
* @param {Object} cart Cart
*/
function deleteCart(cart) {
const index = vm.carts.indexOf(cart);
if (index >= 0) {
vm.isLoading = true;
Cart.deleteSaved(cart.id).then(
() => {
vm.carts.splice(index, 1);
vm.isLoading = false;
},
function (error) {
console.error(error);
}
);
}
}
}
})();