equal
deleted
inserted
replaced
1 import { JSONAPISerializer } from 'ember-cli-mirage'; |
1 import { JSONAPISerializer } from 'ember-cli-mirage'; |
2 |
2 |
3 import _ from 'lodash/lodash'; |
3 import _ from 'lodash/lodash'; |
4 |
4 |
5 export default JSONAPISerializer.extend({ |
5 export default JSONAPISerializer.extend({ |
6 serialize(response) { |
6 |
7 return _(response.models).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value(); |
7 serialize: function(response, request) { |
|
8 // Remove models with no name |
|
9 response.models = response.models.filter(element => element.label); |
|
10 // Alphabetical order |
|
11 if(request.queryParams.sort === 'alphabetical') { |
|
12 response.models.sort(function(a, b) { |
|
13 var aLabel = a.label.toUpperCase(); |
|
14 var bLabel = b.label.toUpperCase(); |
|
15 if (aLabel < bLabel) return -1; |
|
16 if (aLabel > bLabel) return 1; |
|
17 return 0; |
|
18 }); |
|
19 // Descending order |
|
20 } else if(request.queryParams.sort === 'descending') { |
|
21 response.models.sort(function(a, b) { |
|
22 return b.count - a.count; |
|
23 }); |
|
24 } |
|
25 var index = request.queryParams.page * request.queryParams.limit; |
|
26 var slice = response.models.slice(index, index + request.queryParams.limit); |
|
27 return _(slice).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value(); |
8 } |
28 } |
|
29 |
9 }); |
30 }); |