function decorateBatch()

in public/src/js/modules/content-api.js [166:210]


function decorateBatch (articles) {
    var ids = [];

    articles.forEach(function(article){
        var data = cache.get('contentApi', article.id());
        if (data) {
            populate(article, data);
        } else {
            ids.push(article.id());
        }
    });

    return fetchContentByIds(ids)
    .then(function(res = {}) {
        var results = res.content;
        if (!_.isArray(results)) {
            return;
        }

        results.forEach(function(result) {
            var pageCode = internalPageCode(result);

            if (pageCode) {
                cache.put('contentApi', pageCode, result);

                _.filter(articles, function(article) {
                    var id = article.id();
                    return id === pageCode;
                }).forEach(function(article) {
                    populate(article, result);
                });
            }
        });

       _.chain(articles)
        // legacy-snaps
        .filter(function(article) { return !article.meta.href(); })

        .filter(function(article) { return !article.meta.snapType(); })
        .each(function(article) {
            article.state.isEmpty(!article.state.isLoaded());
        });
    })
    .catch(reportErrors);
}