1
0
Fork 0
VaultUI/src/api/createOrUpdateSecret.js

32 lines
900 B
JavaScript
Raw Normal View History

2021-05-07 11:53:26 +01:00
import { appendAPIURL, getHeaders } from "./apiUtils.js";
2021-05-07 11:54:44 +01:00
import { removeDoubleSlash } from "../utils.js";
2021-05-07 11:53:26 +01:00
export async function createOrUpdateSecret(baseMount, mountType, secretPath, name, data) {
let secretURL = "";
let APIData = {};
if (mountType == "kv-v2") {
secretURL = `/v1/${baseMount}/data/${secretPath.join("/")}/${name}`;
APIData = { "data": data };
} else {
secretURL = `/v1/${baseMount}/${secretPath.join("/")}/${name}`;
APIData = data;
}
secretURL = removeDoubleSlash(secretURL).replace(/\/$/, "");
const request = new Request(appendAPIURL(secretURL), {
method: "POST",
headers: {
'Content-Type': 'application/json',
...getHeaders(),
},
body: JSON.stringify(APIData, null, 0)
});
let response = await fetch(request);
if (!response.ok) {
let json = await response.json();
throw new Error(json.errors[0]);
}
}