url-builder.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /**
  2. * Copyright © Magento, Inc. All rights reserved.
  3. * See COPYING.txt for license details.
  4. */
  5. define(['jquery'], function ($) {
  6. 'use strict';
  7. return {
  8. method: 'rest',
  9. storeCode: window.checkoutConfig.storeCode,
  10. version: 'V1',
  11. serviceUrl: ':method/:storeCode/:version',
  12. /**
  13. * @param {String} url
  14. * @param {Object} params
  15. * @return {*}
  16. */
  17. createUrl: function (url, params) {
  18. var completeUrl = this.serviceUrl + url;
  19. return this.bindParams(completeUrl, params);
  20. },
  21. /**
  22. * @param {String} url
  23. * @param {Object} params
  24. * @return {*}
  25. */
  26. bindParams: function (url, params) {
  27. var urlParts;
  28. params.method = this.method;
  29. params.storeCode = this.storeCode;
  30. params.version = this.version;
  31. urlParts = url.split('/');
  32. urlParts = urlParts.filter(Boolean);
  33. $.each(urlParts, function (key, part) {
  34. part = part.replace(':', '');
  35. if (params[part] != undefined) { //eslint-disable-line eqeqeq
  36. urlParts[key] = params[part];
  37. }
  38. });
  39. return urlParts.join('/');
  40. }
  41. };
  42. });