Fixed serialisation of belongsTo relationships

no issue
- `belongsTo` relationships were failing to save on the server correctly because they did not contain the `_id` suffix
  - became noticeable when the first standalone `belongsTo` relationship was added to webhooks
  - added conditional for special-case `_by` relationships which don't require an additional `_id` when saving to the API
This commit is contained in:
Kevin Ansfield 2018-10-18 18:23:19 +01:00
parent 8400892dbd
commit 18c75ac670

View File

@ -1,5 +1,5 @@
import RESTSerializer from 'ember-data/serializers/rest';
import {decamelize} from '@ember/string';
import {camelize, decamelize, underscore} from '@ember/string';
import {pluralize} from 'ember-inflector';
export default RESTSerializer.extend({
@ -27,5 +27,16 @@ export default RESTSerializer.extend({
keyForAttribute(attr) {
return decamelize(attr);
},
keyForRelationship(key, typeClass, method) {
let transform = method === 'serialize' ? underscore : camelize;
if (typeClass === 'belongsTo' && !key.match(/(Id|By)$/)) {
let transformed = `${transform(key)}_id`;
return transformed;
}
return transform(key);
}
});