mirror of https://github.com/hashicorp/consul
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import Mixin from '@ember/object/mixin';
|
|
|
|
import minimizeModel from 'consul-ui/utils/minimizeModel';
|
|
|
|
export default Mixin.create({
|
|
// TODO: what about update and create?
|
|
respondForQueryRecord: function (respond, query) {
|
|
return this._super(function (cb) {
|
|
return respond((headers, body) => {
|
|
body.Roles = typeof body.Roles === 'undefined' || body.Roles === null ? [] : body.Roles;
|
|
return cb(headers, body);
|
|
});
|
|
}, query);
|
|
},
|
|
respondForQuery: function (respond, query) {
|
|
return this._super(function (cb) {
|
|
return respond(function (headers, body) {
|
|
return cb(
|
|
headers,
|
|
body.map(function (item) {
|
|
item.Roles = typeof item.Roles === 'undefined' || item.Roles === null ? [] : item.Roles;
|
|
return item;
|
|
})
|
|
);
|
|
});
|
|
}, query);
|
|
},
|
|
serialize: function (snapshot, options) {
|
|
const data = this._super(...arguments);
|
|
data.Roles = minimizeModel(data.Roles);
|
|
return data;
|
|
},
|
|
});
|