38 lines
984 B
TypeScript
38 lines
984 B
TypeScript
import { appendAPIURL, getHeaders } from "./apiUtils";
|
|
import { removeDoubleSlash } from "../utils";
|
|
|
|
|
|
export async function createOrUpdateSecret(
|
|
baseMount: string,
|
|
mountType: string,
|
|
secretPath: string[],
|
|
name: string,
|
|
data: Record<string, unknown>
|
|
): Promise<void> {
|
|
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)
|
|
});
|
|
const response = await fetch(request);
|
|
if (!response.ok) {
|
|
const json = await response.json();
|
|
throw new Error(json.errors[0]);
|
|
}
|
|
}
|