cms/app-client/mirage/serializers/theme.js
author Chloe Laisne <chloe.laisne@gmail.com>
Sat, 09 Jul 2016 00:59:32 +0200
changeset 236 ac6928e86d14
parent 173 cf7b221238fd
child 237 69a9f3687902
permissions -rw-r--r--
Adapt theme query limit and offset and sorting order in fixtures

import { JSONAPISerializer } from 'ember-cli-mirage';

import _ from 'lodash/lodash';

export default JSONAPISerializer.extend({

    serialize: function(response, request) {
    	// Remove models with no name
    	response.models = response.models.filter(element => element.label);
    	// Alphabetical order
    	if(request.queryParams.sort === 'alphabetical') {
    		response.models.sort(function(a, b) {
				var aLabel = a.label.toUpperCase();
				var bLabel = b.label.toUpperCase();
				if (aLabel < bLabel) return -1;
				if (aLabel > bLabel) return 1;
				return 0;
			});
		// Descending order
    	} else if(request.queryParams.sort === 'descending') {
    		response.models.sort(function(a, b) {
				return b.count - a.count;
			});
    	}
    	var index = request.queryParams.page * request.queryParams.limit;
    	var slice = response.models.slice(index, index + request.queryParams.limit);
        return _(slice).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value();
    }

});