All files / web/bundles/pimui/js user-context.js

100% Statements 13/13
100% Branches 4/4
100% Functions 5/5
100% Lines 13/13

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51    1183x     1183x   1183x             1180x   1180x 1180x 1180x 1180x                     78002x                   1458x 1458x   1458x 1366x            
'use strict';
 
define(
    ['jquery', 'backbone', 'underscore', 'routing'],
    ($, Backbone, _, Routing) => {
        var contextData = {};
 
        return _.extend({
            /**
             * Fetches data from the back then stores it.
             *
             * @returns {Promise}
             */
            initialize: () => {
                return $.get(Routing.generate('pim_user_user_rest_get_current'))
                    .then(response => {
                        contextData = response;
                        contextData.uiLocale = contextData.user_default_locale;
                        contextData.catalogLocale = contextData.catalog_default_locale;
                        contextData.catalogScope = contextData.catalog_default_scope;
                    });
            },
 
            /**
             * Returns the value corresponding to the specified key.
             *
             * @param {String} key
             *
             * @returns {*}
             */
            get: key => contextData[key],
 
            /**
             * Sets a new value at the specified key.
             *
             * @param {String} key
             * @param {String} value
             * @param {Object} options
             */
            set: function (key, value, options) {
                options = options || {};
                contextData[key] = value;
 
                if (!options.silent) {
                    this.trigger('change:' + key);
                }
            }
        }, Backbone.Events);
    }
);