64 lines
2.1 KiB
JavaScript
64 lines
2.1 KiB
JavaScript
import Serializer from './application';
|
|
import { get } from '@ember/object';
|
|
import { PRIMARY_KEY, SLUG_KEY } from 'consul-ui/models/nspace';
|
|
|
|
export default Serializer.extend({
|
|
primaryKey: PRIMARY_KEY,
|
|
slugKey: SLUG_KEY,
|
|
respondForQuery: function(respond, serialized, data) {
|
|
return respond((headers, body) => {
|
|
return this.attachHeaders(
|
|
headers,
|
|
body.map(function(item) {
|
|
if (get(item, 'ACLs.PolicyDefaults')) {
|
|
item.ACLs.PolicyDefaults = item.ACLs.PolicyDefaults.map(function(item) {
|
|
item.template = '';
|
|
return item;
|
|
});
|
|
}
|
|
// Both of these might come though unset so we make sure
|
|
// we at least have an empty array here so we can add
|
|
// children to them if we need to whilst saving nspaces
|
|
['PolicyDefaults', 'RoleDefaults'].forEach(function(prop) {
|
|
if (typeof item.ACLs === 'undefined') {
|
|
item.ACLs = [];
|
|
}
|
|
if (typeof item.ACLs[prop] === 'undefined') {
|
|
item.ACLs[prop] = [];
|
|
}
|
|
});
|
|
return item;
|
|
})
|
|
);
|
|
});
|
|
},
|
|
respondForQueryRecord: function(respond, serialized, data) {
|
|
// We don't attachHeaders here yet, mainly because we don't use
|
|
// blocking queries on form views yet, and by the time we do
|
|
// Serializers should have been refactored to not use attachHeaders
|
|
return respond((headers, body) => {
|
|
return body;
|
|
});
|
|
},
|
|
respondForCreateRecord: function(respond, serialized, data) {
|
|
return respond((headers, body) => {
|
|
// The data properties sent to be saved in the backend
|
|
// or the same ones that we receive back if its successfull
|
|
// therefore we can just ignore the result and avoid ember-data
|
|
// syncing problems
|
|
return {};
|
|
});
|
|
},
|
|
respondForUpdateRecord: function(respond, serialized, data) {
|
|
return respond((headers, body) => {
|
|
return body;
|
|
});
|
|
},
|
|
respondForDeleteRecord: function(respond, serialized, data) {
|
|
return respond((headers, body) => {
|
|
// Deletes only need the primaryKey/uid returning
|
|
return body;
|
|
});
|
|
},
|
|
});
|