All files / web/bundles/pimui/js/fetcher product-model-fetcher.js

87.5% Statements 7/8
50% Branches 2/4
100% Functions 4/4
87.5% Lines 7/8

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 52 53 54 55 56 57 58 59                  1162x                             1162x         1162x   1162x             4x                 39x       39x              
'use strict';
 
/**
 * Fetcher for product models
 *
 * @author    Adrien Pétremann <adrien.petremann@akeneo.com>
 * @copyright 2017 Akeneo SAS (http://www.akeneo.com)
 * @license   http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 */
define(
    [
        'jquery',
        'underscore',
        'pim/product-fetcher',
        'oro/mediator',
        'routing'
    ],
    function (
        $,
        _,
        ProductFetcher,
        mediator,
        Routing
    ) {
        return ProductFetcher.extend({
            /**
             * @param {Object} options
             */
            initialize: function (options) {
                this.options = options || {};
 
                ProductFetcher.prototype.initialize.apply(this, [options]);
            },
 
            /**
             * {@inheritdoc}
             */
            getIdentifierField: function () {
                return $.Deferred().resolve('code');
            },
 
            /**
             * Fetch all children of the given parent.
             *
             * @return {Promise}
             */
            fetchChildren: function (parentId) {
                Iif (!_.has(this.options.urls, 'children')) {
                    return $.Deferred().reject().promise();
                }
 
                return $.getJSON(
                    Routing.generate(this.options.urls.children), {id: parentId}
                ).then(_.identity).promise();
            }
        });
    }
);