import DS from 'ember-data';
import Ember from 'ember';
import _ from 'lodash/lodash';
export default DS.Model.extend({
uri: DS.attr('string'),
issued: DS.attr('date'),
title: DS.attr('string'),
language: DS.attr('string'),
publishers: DS.attr({ defaultValue: function() { return []; } }),
contributors: DS.attr({ defaultValue: function() { return []; } }),
geoInfo: DS.attr({ defaultValue: function() { return {}; } }),
mediaArray: DS.attr({ defaultValue: function() { return []; } }),
mediaList: Ember.computed('mediaArray', function() {
var res = [];
var mp3 = null;
_.forEach(this.get('mediaArray'), function(m) {
if(m.format === 'audio/mpeg') {
mp3 = m;
} else if(m.format.startsWith('audio/')) {
res.push(m);
}
});
if(mp3) {
res.unshift(mp3);
}
return res;
}),
duration: Ember.computed('mediaArray', function() {
var self = this;
var duration = 0;
Object.keys(this.get('mediaArray')).forEach(function(key) {
if (!duration && self.get('mediaArray')[key].extent_ms) {
duration = self.get('mediaArray')[key].extent_ms;
};
});
return duration / 1000;
})
});