import ApplicationSerializer from 'ghost/serializers/application'; var UserSerializer = ApplicationSerializer.extend(DS.EmbeddedRecordsMixin, { attrs: { roles: {embedded: 'always'} }, extractSingle: function (store, primaryType, payload) { var root = this.keyForAttribute(primaryType.typeKey), pluralizedRoot = Ember.String.pluralize(primaryType.typeKey); payload[root] = payload[pluralizedRoot][0]; delete payload[pluralizedRoot]; return this._super.apply(this, arguments); }, keyForAttribute: function (attr) { return attr; }, keyForRelationship: function (relationshipName) { // this is a hack to prevent Ember-Data from deleting our `tags` reference. // ref: https://github.com/emberjs/data/issues/2051 // @TODO: remove this once the situation becomes clearer what to do. if (relationshipName === 'roles') { return 'role'; } return relationshipName; } }); export default UserSerializer;