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) { |