cms/app-client/mirage/serializers/sparse-document.js
changeset 414 5c6c526a7fc1
parent 348 a5e8d037304b
child 537 d2e6ee099125
equal deleted inserted replaced
413:8f29358e46da 414:5c6c526a7fc1
     5 
     5 
     6 export default BaseSerializer.extend({
     6 export default BaseSerializer.extend({
     7     attrs: ['id', 'title', 'languages', 'url', 'issued', 'modified', 'publishers', 'mediaArray', 'transcript'],
     7     attrs: ['id', 'title', 'languages', 'url', 'issued', 'modified', 'publishers', 'mediaArray', 'transcript'],
     8 
     8 
     9     serialize(response, request) {
     9     serialize(response, request) {
    10 
       
    11         // This is how to call super, as Mirage borrows [Backbone's implementation of extend](http://backbonejs.org/#Model-extend)
    10         // This is how to call super, as Mirage borrows [Backbone's implementation of extend](http://backbonejs.org/#Model-extend)
    12         let json = BaseSerializer.prototype.serialize.apply(this, arguments);
    11         let json = BaseSerializer.prototype.serialize.apply(this, arguments);
       
    12 
       
    13         if(!!request.queryParams.id) {
       
    14             let docs = _(json['documents']).filter(function(m) {
       
    15                 return m.id === request.queryParams.id;
       
    16             }).map(function(doc) {
       
    17                 let res = _.omit(doc, ['publishers', 'mediaArray', 'transcript']);
       
    18                 res['publisher'] = doc['publishers'].join(', ');
       
    19                 res['duration_ms'] = doc['mediaArray']?doc['mediaArray'][_(Object.keys(doc['mediaArray'])).first()]['extent_ms']:0;
       
    20                 res['transcript_url'] = (doc['transcript'] && doc['transcript']['url'])?doc['transcript']['url']:null;
       
    21                 return res;
       
    22             }).value();
       
    23             let meta = {
       
    24               total: 1,
       
    25               per_page: 1,
       
    26               current_page: 1,
       
    27               last_page: 1,
       
    28               from: 1,
       
    29               to: 1,
       
    30               prev_page_url: null,
       
    31               next_page_url: null
       
    32             };
       
    33 
       
    34             return {'documents': docs, 'meta': meta};
       
    35         }
    13 
    36 
    14         let page = Math.max(parseInt(request.queryParams.page || 1) - 1, 0);
    37         let page = Math.max(parseInt(request.queryParams.page || 1) - 1, 0);
    15         let perPage = parseInt(request.queryParams.perpage || 100);
    38         let perPage = parseInt(request.queryParams.perpage || 100);
    16 
    39 
    17         json['documents'] = _.map(_.slice(json['documents'], page*perPage, (page+1)*perPage), function(doc) {
    40         json['documents'] = _.map(_.slice(json['documents'], page*perPage, (page+1)*perPage), function(doc) {