cms/app-client/mirage/serializers/theme.js
changeset 236 ac6928e86d14
parent 173 cf7b221238fd
child 237 69a9f3687902
equal deleted inserted replaced
235:51acae6af8a3 236:ac6928e86d14
     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 });