misc: added proper notifs for paths with policies in overview

This commit is contained in:
Sheen Capadngan
2024-09-27 22:18:47 +08:00
parent 441b008709
commit bc475e0f08
2 changed files with 92 additions and 34 deletions

View File

@@ -351,7 +351,7 @@ export const SecretOverviewPage = () => {
});
}
}
await createSecretV3({
const result = await createSecretV3({
environment: env,
workspaceId,
secretPath,
@@ -360,10 +360,18 @@ export const SecretOverviewPage = () => {
secretComment: "",
type: SecretType.Shared
});
createNotification({
type: "success",
text: "Successfully created secret"
});
if ("approval" in result) {
createNotification({
type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully created secret"
});
}
} catch (error) {
console.log(error);
createNotification({
@@ -388,7 +396,7 @@ export const SecretOverviewPage = () => {
type = SecretType.Shared
) => {
try {
await updateSecretV3({
const result = await updateSecretV3({
environment: env,
workspaceId,
secretPath,
@@ -396,10 +404,18 @@ export const SecretOverviewPage = () => {
secretValue: value,
type
});
createNotification({
type: "success",
text: "Successfully updated secret"
});
if ("approval" in result) {
createNotification({
type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully updated secret"
});
}
} catch (error) {
console.log(error);
createNotification({
@@ -411,7 +427,7 @@ export const SecretOverviewPage = () => {
const handleSecretDelete = async (env: string, key: string, secretId?: string) => {
try {
await deleteSecretV3({
const result = await deleteSecretV3({
environment: env,
workspaceId,
secretPath,
@@ -419,10 +435,18 @@ export const SecretOverviewPage = () => {
secretId,
type: SecretType.Shared
});
createNotification({
type: "success",
text: "Successfully deleted secret"
});
if ("approval" in result) {
createNotification({
type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully deleted secret"
});
}
} catch (error) {
console.log(error);
createNotification({

View File

@@ -122,42 +122,76 @@ export const CreateSecretForm = ({
const isEdit = getSecretByKey(environment, key) !== undefined;
if (isEdit) {
return updateSecretV3({
return {
...(await updateSecretV3({
environment,
workspaceId,
secretPath,
secretKey: key,
secretValue: value || "",
type: SecretType.Shared
})),
environment
};
}
return {
...(await createSecretV3({
environment,
workspaceId,
secretPath,
secretKey: key,
secretValue: value || "",
secretComment: "",
type: SecretType.Shared
});
}
return createSecretV3({
environment,
workspaceId,
secretPath,
secretKey: key,
secretValue: value || "",
secretComment: "",
type: SecretType.Shared
});
})),
environment
};
});
const results = await Promise.allSettled(promises);
const isSecretsAdded = results.some((result) => result.status === "fulfilled");
const forApprovalEnvs = results
.map((result) =>
result.status === "fulfilled" && "approval" in result.value
? result.value.environment
: undefined
)
.filter(Boolean) as string[];
if (isSecretsAdded) {
const updatedEnvs = results
.map((result) =>
result.status === "fulfilled" && !("approval" in result.value)
? result.value.environment
: undefined
)
.filter(Boolean) as string[];
if (forApprovalEnvs.length) {
createNotification({
type: "info",
text: `Change request submitted for ${
forApprovalEnvs.length > 1 ? "environments" : "environment"
}: ${forApprovalEnvs.join(", ")}`
});
}
if (updatedEnvs.length) {
createNotification({
type: "success",
text: "Secrets created successfully"
text: `Secrets created in ${
updatedEnvs.length > 1 ? "environments" : "environment"
}: ${updatedEnvs.join(", ")}`
});
onClose();
reset();
} else {
}
if (!updatedEnvs.length && !forApprovalEnvs.length) {
createNotification({
type: "error",
text: "Failed to create secrets"
});
} else {
onClose();
reset();
}
};