deb.open-vault/ui/app/adapters/lease.js

64 lines
1.5 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import ApplicationAdapter from './application';
import { encodePath } from 'vault/utils/path-encoding-helpers';
export default ApplicationAdapter.extend({
revokePrefix(prefix) {
let url = this.buildURL() + '/leases/revoke-prefix/' + encodePath(prefix);
url = url.replace(/\/$/, '');
return this.ajax(url, 'PUT');
},
forceRevokePrefix(prefix) {
let url = this.buildURL() + '/leases/revoke-force/' + encodePath(prefix);
url = url.replace(/\/$/, '');
return this.ajax(url, 'PUT');
},
renew(lease_id, increment) {
const url = this.buildURL() + '/leases/renew';
return this.ajax(url, 'PUT', {
data: {
lease_id,
increment,
},
});
},
deleteRecord(store, type, snapshot) {
const lease_id = snapshot.id;
return this.ajax(this.buildURL() + '/leases/revoke', 'PUT', {
data: {
lease_id,
},
});
},
queryRecord(store, type, query) {
const { lease_id } = query;
return this.ajax(this.buildURL() + '/leases/lookup', 'PUT', {
data: {
lease_id,
},
});
},
query(store, type, query) {
const prefix = query.prefix || '';
return this.ajax(this.buildURL() + '/leases/lookup/' + encodePath(prefix), 'GET', {
data: {
list: true,
},
}).then((resp) => {
if (prefix) {
resp.prefix = prefix;
}
return resp;
});
},
});