cimpress-customizr
Version:
A thin client for Cimpress Customizr service
442 lines (386 loc) • 15.5 kB
JavaScript
"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);
}