define([
'js/instafeed',
'jquery',
'mageUtils'
], function(Instafeed, $, utils) {
'use strict';
var wrapperTemplate = '
{{content}}
',
itemTemaplet = '{{title}}';
return function(config, element) {
var $element = $(element),
instagramConfig = utils.extend({
'accessToken': config.accessToken,
'get': 'user',
'userId': config.userId,
'sortBy': 'most-recent'
}, config, {
'mock': true,
'success': iSuccess.bind(null, $element),
'error': iError.bind(null, $element)
}),
feed = new Instafeed(instagramConfig);
$element.addClass('_loading');
feed.run();
};
function iSuccess($element, data) {
var content = '',
images = data && data.data || [];
images.forEach(function(image) {
if (image && image.caption !== null) {
content += itemTemaplet
.replace(/\{\{src\}\}/gi, image.images.standard_resolution.url)
.replace(/\{\{title\}\}/gi, image.caption.text)
.replace(/\{\{href\}\}/gi, image.link);
}
});
content = wrapperTemplate.replace('{{content}}', content);
$element
.removeClass('_loading')
.addClass('_loaded')
.html(content);
}
function iError($element, message) {
$element.removeClass('_loading').addClass('_failed');
console && console.log && console.warn('DD Instagram feed. Error from Instagram: ' + message);
}
});