UNPKG

cimpress-customizr

Version:

A thin client for Cimpress Customizr service

442 lines (386 loc) 15.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getMcpSettings = getMcpSettings; exports.setMcpSettings = setMcpSettings; exports.setPreferredMcpSettings = setPreferredMcpSettings; exports.getPreferredMcpLanguages = getPreferredMcpLanguages; exports.setPreferredMcpLanguage = setPreferredMcpLanguage; exports.getPreferredMcpRegionalSettings = getPreferredMcpRegionalSettings; exports.setPreferredMcpRegionalSettings = setPreferredMcpRegionalSettings; exports.getPreferredMcpTimezone = getPreferredMcpTimezone; exports.setPreferredMcpTimezone = setPreferredMcpTimezone; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _CustomizrClient = _interopRequireDefault(require("./CustomizrClient")); var _countryLanguage = _interopRequireDefault(require("country-language")); var _utils = require("./utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } var mcpCustomizr = new _CustomizrClient["default"]({ resource: 'mcp-generic-ui-settings' }); /** * Return raw settings as stored in Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<*|void>} */ function getMcpSettings(_x) { return _getMcpSettings.apply(this, arguments); } /** * Set raw settings in Customizr without any validation * @param {string} accessToken - Access token to use to call Customizr * @param {object} settings - Settings object. Only language, regionalSettings and timezone will be read * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<void>} */ function _getMcpSettings() { _getMcpSettings = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee(accessToken) { var sessionId, data, _args = arguments; return _regenerator["default"].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: sessionId = _args.length > 1 && _args[1] !== undefined ? _args[1] : undefined; _context.next = 3; return mcpCustomizr.getSettings(accessToken, undefined, sessionId); case 3: data = _context.sent; if (!(Object.keys(data).length === 0)) { _context.next = 6; break; } return _context.abrupt("return", { language: ['en'], regionalSettings: 'en', timezone: 'America/New_York' }); case 6: return _context.abrupt("return", data); case 7: case "end": return _context.stop(); } } }, _callee); })); return _getMcpSettings.apply(this, arguments); } function setMcpSettings(_x2, _x3) { return _setMcpSettings.apply(this, arguments); } /** * Validate and update the preferred user settings at once * @param {string} accessToken - Access token to use to call Customizr * @param {string} languageCode - ISO-639 language code (eg. bul, en, eng, de) * @param {string} languageTag - RFC 4656 compliant language code (eg. en, en-US) * @param {string} timezone - IANA timezone (eg. Europe/Amsterdam) * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<void>} */ function _setMcpSettings() { _setMcpSettings = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee2(accessToken, settings) { var sessionId, _args2 = arguments; return _regenerator["default"].wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: sessionId = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : undefined; _context2.next = 3; return mcpCustomizr.putSettings(accessToken, { language: settings.language, regionalSettings: settings.regionalSettings, timezone: settings.timezone }, undefined, sessionId); case 3: return _context2.abrupt("return", _context2.sent); case 4: case "end": return _context2.stop(); } } }, _callee2); })); return _setMcpSettings.apply(this, arguments); } function setPreferredMcpSettings(_x4, _x5, _x6, _x7) { return _setPreferredMcpSettings.apply(this, arguments); } /** * Get the preferred language from Customizr * @param {string} accessToken * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<*|Uint8Array|BigInt64Array|{lang: *, iso639_1: (string), iso639_2: *, iso639_3: *}[]|Float64Array|Int8Array|Float32Array|Int32Array|Uint32Array|Uint8ClampedArray|BigUint64Array|Int16Array|Uint16Array>} */ function _setPreferredMcpSettings() { _setPreferredMcpSettings = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee3(accessToken, languageCode, languageTag, timezone) { var sessionId, preferredLanguage, preferredRegionalSettings, preferredTimezone, mcpSettings, _args3 = arguments; return _regenerator["default"].wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: sessionId = _args3.length > 4 && _args3[4] !== undefined ? _args3[4] : undefined; preferredLanguage = (0, _utils.getValidLanguageOrThrow)(languageCode); preferredRegionalSettings = (0, _utils.getValidLanguageTagOrThrow)(languageTag); preferredTimezone = (0, _utils.getValidTimezoneOrThrow)(timezone); _context3.next = 6; return getMcpSettings(accessToken, sessionId); case 6: mcpSettings = _context3.sent; _context3.next = 9; return mcpCustomizr.putSettings(accessToken, { language: (0, _utils.updatePreferredLanguage)(preferredLanguage, mcpSettings.language), regionalSettings: preferredRegionalSettings, timezone: preferredTimezone }, undefined, sessionId); case 9: return _context3.abrupt("return", _context3.sent); case 10: case "end": return _context3.stop(); } } }, _callee3); })); return _setPreferredMcpSettings.apply(this, arguments); } function getPreferredMcpLanguages(_x8) { return _getPreferredMcpLanguages.apply(this, arguments); } /** * Update the preferred language in Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} languageCode - ISO-639 language code (eg. bul, en, eng, de) * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<void>} */ function _getPreferredMcpLanguages() { _getPreferredMcpLanguages = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee4(accessToken) { var sessionId, mcpSettings, twoLetterArray, _args4 = arguments; return _regenerator["default"].wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: sessionId = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : undefined; _context4.next = 3; return getMcpSettings(accessToken, sessionId); case 3: mcpSettings = _context4.sent; twoLetterArray = mcpSettings.language || []; return _context4.abrupt("return", twoLetterArray.map(function (twoLetter) { var language = _countryLanguage["default"].getLanguages().find(function (a) { return a.iso639_1 === twoLetter; }); return { lang: twoLetter, iso639_1: language ? language.iso639_1 : twoLetter, iso639_2: language ? language.iso639_2 : undefined, iso639_3: language ? language.iso639_3 : undefined }; })); case 6: case "end": return _context4.stop(); } } }, _callee4); })); return _getPreferredMcpLanguages.apply(this, arguments); } function setPreferredMcpLanguage(_x9, _x10) { return _setPreferredMcpLanguage.apply(this, arguments); } /** * Get the preferred regional settings from Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<string>} */ function _setPreferredMcpLanguage() { _setPreferredMcpLanguage = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee5(accessToken, languageCode) { var sessionId, language, currentLanguages, _args5 = arguments; return _regenerator["default"].wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: sessionId = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : undefined; language = (0, _utils.getValidLanguageOrThrow)(languageCode); _context5.next = 4; return getPreferredMcpLanguages(accessToken, sessionId); case 4: currentLanguages = _context5.sent; return _context5.abrupt("return", mcpCustomizr.putSettings(accessToken, { language: (0, _utils.updatePreferredLanguage)(language, currentLanguages.map(function (l) { return l.iso639_1; })) }, undefined, sessionId)); case 6: case "end": return _context5.stop(); } } }, _callee5); })); return _setPreferredMcpLanguage.apply(this, arguments); } function getPreferredMcpRegionalSettings(_x11) { return _getPreferredMcpRegionalSettings.apply(this, arguments); } /** * Update the preferred regional format in Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} languageTag - RFC 4656 compliant language code (eg. en, en-US) * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<void>} */ function _getPreferredMcpRegionalSettings() { _getPreferredMcpRegionalSettings = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee6(accessToken) { var sessionId, mcpSettings, _args6 = arguments; return _regenerator["default"].wrap(function _callee6$(_context6) { while (1) { switch (_context6.prev = _context6.next) { case 0: sessionId = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : undefined; _context6.next = 3; return mcpCustomizr.getSettings(accessToken, undefined, sessionId); case 3: mcpSettings = _context6.sent; return _context6.abrupt("return", mcpSettings.regionalSettings); case 5: case "end": return _context6.stop(); } } }, _callee6); })); return _getPreferredMcpRegionalSettings.apply(this, arguments); } function setPreferredMcpRegionalSettings(_x12, _x13) { return _setPreferredMcpRegionalSettings.apply(this, arguments); } /** * Get the preferred timezone from Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<string>} */ function _setPreferredMcpRegionalSettings() { _setPreferredMcpRegionalSettings = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee7(accessToken, languageTag) { var sessionId, regionalSettings, _args7 = arguments; return _regenerator["default"].wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: sessionId = _args7.length > 2 && _args7[2] !== undefined ? _args7[2] : undefined; regionalSettings = (0, _utils.getValidLanguageTagOrThrow)(languageTag); return _context7.abrupt("return", mcpCustomizr.putSettings(accessToken, { regionalSettings: regionalSettings }.undefined, sessionId)); case 3: case "end": return _context7.stop(); } } }, _callee7); })); return _setPreferredMcpRegionalSettings.apply(this, arguments); } function getPreferredMcpTimezone(_x14) { return _getPreferredMcpTimezone.apply(this, arguments); } /** * Update the preferred timezone from Customizr * @param {string} accessToken - Access token to use to call Customizr * @param {string} timezone - IANA timezone (eg. Europe/Amsterdam) * @param {string} sessionId - Session Id to use to call Customizr * @return {Promise<void>} */ function _getPreferredMcpTimezone() { _getPreferredMcpTimezone = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee8(accessToken) { var sessionId, mcpSettings, _args8 = arguments; return _regenerator["default"].wrap(function _callee8$(_context8) { while (1) { switch (_context8.prev = _context8.next) { case 0: sessionId = _args8.length > 1 && _args8[1] !== undefined ? _args8[1] : undefined; _context8.next = 3; return getMcpSettings(accessToken, sessionId); case 3: mcpSettings = _context8.sent; return _context8.abrupt("return", mcpSettings.timezone); case 5: case "end": return _context8.stop(); } } }, _callee8); })); return _getPreferredMcpTimezone.apply(this, arguments); } function setPreferredMcpTimezone(_x15, _x16) { return _setPreferredMcpTimezone.apply(this, arguments); } function _setPreferredMcpTimezone() { _setPreferredMcpTimezone = _asyncToGenerator( /*#__PURE__*/ _regenerator["default"].mark(function _callee9(accessToken, timezone) { var sessionId, tz, _args9 = arguments; return _regenerator["default"].wrap(function _callee9$(_context9) { while (1) { switch (_context9.prev = _context9.next) { case 0: sessionId = _args9.length > 2 && _args9[2] !== undefined ? _args9[2] : undefined; tz = (0, _utils.getValidTimezoneOrThrow)(timezone); return _context9.abrupt("return", mcpCustomizr.putSettings(accessToken, { timezone: tz }, undefined, sessionId)); case 3: case "end": return _context9.stop(); } } }, _callee9); })); return _setPreferredMcpTimezone.apply(this, arguments); }