cms/app-client/mirage/serializers/theme.js
author Chloe Laisne <chloe.laisne@gmail.com>
Tue, 12 Jul 2016 09:48:11 +0200
changeset 237 69a9f3687902
parent 236 ac6928e86d14
child 240 aa101458cd4e
permissions -rw-r--r--
Scrolling system in thematiques: more button and append data on scroll

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 begin = parseInt(request.queryParams.index * request.queryParams.limit);
        var end = parseInt(begin + (request.queryParams.limit - 1));
        var slice = response.models.slice(begin, end);
        return _(slice).map((theme) => { return [theme.id, {count: theme.count, label: theme.label}];}).object().value();
    }

});