cms/app-client/mirage/serializers/theme.js
author Chloe Laisne <chloe.laisne@gmail.com>
Sat, 16 Jul 2016 17:23:47 +0200
changeset 240 aa101458cd4e
parent 237 69a9f3687902
child 306 3fccf43160a7
permissions -rw-r--r--
Player forward and backward

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

});