TryGhost/Ghost

View on GitHub
ghost/admin/app/serializers/label.js

Summary

Maintainability
A
3 hrs
Test Coverage
/* eslint-disable camelcase */
import ApplicationSerializer from './application';
import {pluralize} from 'ember-inflector';

export default class LabelSerializer extends ApplicationSerializer {
    attrs = {
        createdAtUTC: {key: 'created_at'},
        updatedAtUTC: {key: 'updated_at'}
    };

    serialize(/*snapshot, options*/) {
        let json = super.serialize(...arguments);

        // Properties that exist on the model but we don't want sent in the payload
        delete json.count;

        return json;
    }

    // if we use `queryRecord` ensure we grab the first record to avoid
    // DS.SERIALIZER.REST.QUERYRECORD-ARRAY-RESPONSE deprecations
    normalizeResponse(store, primaryModelClass, payload, id, requestType) {
        if (requestType === 'queryRecord') {
            let singular = primaryModelClass.modelName;
            let plural = pluralize(singular);

            if (payload[plural]) {
                payload[singular] = payload[plural][0];
                delete payload[plural];
            }
        }
        return super.normalizeResponse(...arguments);
    }
}