All files / web/bundles/pimui/js/manager attribute-group-manager.js

100% Statements 12/12
100% Branches 4/4
100% Functions 6/6
100% Lines 12/12

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    354x     354x                 4198x   4191x   18877x 9904x     18877x                           3428x   3428x 17945x 3428x       3428x        
'use strict';
 
define(
    ['jquery', 'underscore', 'pim/fetcher-registry'],
    function ($, _, FetcherRegistry) {
    return {
        /**
         * Get all the attribute group for the given product
         *
         * @param {Object} product
         *
         * @return {Promise}
         */
        getAttributeGroupsForObject: function (product) {
            return FetcherRegistry.getFetcher('attribute-group').fetchAll()
                .then(function (attributeGroups) {
                    return _.values(attributeGroups).reduce((result, attributeGroup) => {
                        //If one (or more) of the attributes of the attribute group is in the product we need to add it
                        if (_.intersection(attributeGroup.attributes, _.keys(product.values)).length > 0) {
                            result[attributeGroup.code] = attributeGroup;
                        }
 
                        return result;
                    }, {});
                });
        },
 
        /**
         * Get the attribute group for the given attribute
         *
         * @param {Array} attributeGroups
         * @param {String} attributeCode
         *
         * @return {String}
         */
        getAttributeGroupForAttribute: function (attributeGroups, attributeCode) {
            var result = null;
 
            _.each(attributeGroups, function (attributeGroup) {
                if (-1 !== attributeGroup.attributes.indexOf(attributeCode)) {
                    result = attributeGroup.code;
                }
            });
 
            return result;
        }
    };
});