open-vault/ui/app/adapters/policy.js

43 lines
1.1 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { assign } from '@ember/polyfills';
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
namespace: 'v1/sys',
pathForType(type) {
const path = type.replace('policy', 'policies');
return path;
},
createOrUpdate(store, type, snapshot) {
const serializer = store.serializerFor('policy');
const data = serializer.serialize(snapshot);
const name = snapshot.attr('name');
return this.ajax(this.buildURL(type.modelName, name), 'PUT', { data }).then(() => {
// doing this to make it like a Vault response - ember data doesn't like 204s if it's not a DELETE
return {
data: assign({}, this.serialize(snapshot), { id: name }),
};
});
},
createRecord() {
return this.createOrUpdate(...arguments);
},
updateRecord() {
return this.createOrUpdate(...arguments);
},
query(store, type) {
return this.ajax(this.buildURL(type.modelName), 'GET', {
data: { list: true },
});
},
});