get-totals.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * Copyright © Magento, Inc. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. /**
  6. * @api
  7. */
  8. define([
  9. 'jquery',
  10. '../model/quote',
  11. 'Magento_Checkout/js/model/resource-url-manager',
  12. 'Magento_Checkout/js/model/error-processor',
  13. 'mage/storage',
  14. 'Magento_Checkout/js/model/totals'
  15. ], function ($, quote, resourceUrlManager, errorProcessor, storage, totals) {
  16. 'use strict';
  17. return function (callbacks, deferred) {
  18. deferred = deferred || $.Deferred();
  19. totals.isLoading(true);
  20. return storage.get(
  21. resourceUrlManager.getUrlForCartTotals(quote),
  22. false
  23. ).done(function (response) {
  24. var proceed = true;
  25. totals.isLoading(false);
  26. if (callbacks.length > 0) {
  27. $.each(callbacks, function (index, callback) {
  28. proceed = proceed && callback();
  29. });
  30. }
  31. if (proceed) {
  32. quote.setTotals(response);
  33. deferred.resolve();
  34. }
  35. }).error(function (response) {
  36. totals.isLoading(false);
  37. deferred.reject();
  38. errorProcessor.process(response);
  39. }).always(function () {
  40. totals.isLoading(false);
  41. });
  42. };
  43. });