open-vault/ui/app/adapters/pki/role.js
Hamid Ghaf 27bb03bbc0
adding copyright header (#19555)
* adding copyright header

* fix fmt and a test
2023-03-15 09:00:52 -07:00

76 lines
1.8 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import ApplicationAdapter from '../application';
import { assign } from '@ember/polyfills';
import { encodePath } from 'vault/utils/path-encoding-helpers';
export default class PkiRoleAdapter extends ApplicationAdapter {
namespace = 'v1';
_urlForRole(backend, id) {
let url = `${this.buildURL()}/${encodePath(backend)}/roles`;
if (id) {
url = url + '/' + encodePath(id);
}
return url;
}
_optionsForQuery(id) {
const data = {};
if (!id) {
data['list'] = true;
}
return { data };
}
createRecord(store, type, snapshot) {
const name = snapshot.attr('name');
const url = this._urlForRole(snapshot.record.backend, name);
return this.ajax(url, 'POST', { data: this.serialize(snapshot) }).then(() => {
return {
id: name,
name,
backend: snapshot.record.backend,
};
});
}
updateRecord(store, type, snapshot) {
const { name, backend } = snapshot.record;
const data = this.serialize(snapshot);
const url = this._urlForRole(backend, name);
return this.ajax(url, 'POST', { data });
}
fetchByQuery(store, query) {
const { id, backend } = query;
return this.ajax(this._urlForRole(backend, id), 'GET', this._optionsForQuery(id)).then((resp) => {
const data = {
id,
name: id,
backend,
};
return assign({}, resp, data);
});
}
query(store, type, query) {
return this.fetchByQuery(store, query);
}
queryRecord(store, type, query) {
return this.fetchByQuery(store, query);
}
deleteRecord(store, type, snapshot) {
const { id, record } = snapshot;
return this.ajax(this._urlForRole(record.backend, id), 'DELETE');
}
}