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
@@ -351,7 +351,7 @@ export const SecretOverviewPage = () => {
}); });
} }
} }
await createSecretV3({ const result = await createSecretV3({
environment: env, environment: env,
workspaceId, workspaceId,
secretPath, secretPath,
@@ -360,10 +360,18 @@ export const SecretOverviewPage = () => {
secretComment: "", secretComment: "",
type: SecretType.Shared type: SecretType.Shared
}); });
createNotification({
type: "success", if ("approval" in result) {
text: "Successfully created secret" createNotification({
}); type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully created secret"
});
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
createNotification({ createNotification({
@@ -388,7 +396,7 @@ export const SecretOverviewPage = () => {
type = SecretType.Shared type = SecretType.Shared
) => { ) => {
try { try {
await updateSecretV3({ const result = await updateSecretV3({
environment: env, environment: env,
workspaceId, workspaceId,
secretPath, secretPath,
@@ -396,10 +404,18 @@ export const SecretOverviewPage = () => {
secretValue: value, secretValue: value,
type type
}); });
createNotification({
type: "success", if ("approval" in result) {
text: "Successfully updated secret" createNotification({
}); type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully updated secret"
});
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
createNotification({ createNotification({
@@ -411,7 +427,7 @@ export const SecretOverviewPage = () => {
const handleSecretDelete = async (env: string, key: string, secretId?: string) => { const handleSecretDelete = async (env: string, key: string, secretId?: string) => {
try { try {
await deleteSecretV3({ const result = await deleteSecretV3({
environment: env, environment: env,
workspaceId, workspaceId,
secretPath, secretPath,
@@ -419,10 +435,18 @@ export const SecretOverviewPage = () => {
secretId, secretId,
type: SecretType.Shared type: SecretType.Shared
}); });
createNotification({
type: "success", if ("approval" in result) {
text: "Successfully deleted secret" createNotification({
}); type: "info",
text: "Requested change has been sent for review"
});
} else {
createNotification({
type: "success",
text: "Successfully deleted secret"
});
}
} catch (error) { } catch (error) {
console.log(error); console.log(error);
createNotification({ createNotification({
@@ -122,42 +122,76 @@ export const CreateSecretForm = ({
const isEdit = getSecretByKey(environment, key) !== undefined; const isEdit = getSecretByKey(environment, key) !== undefined;
if (isEdit) { if (isEdit) {
return updateSecretV3({ return {
...(await updateSecretV3({
environment,
workspaceId,
secretPath,
secretKey: key,
secretValue: value || "",
type: SecretType.Shared
})),
environment
};
}
return {
...(await createSecretV3({
environment, environment,
workspaceId, workspaceId,
secretPath, secretPath,
secretKey: key, secretKey: key,
secretValue: value || "", secretValue: value || "",
secretComment: "",
type: SecretType.Shared type: SecretType.Shared
}); })),
} environment
};
return createSecretV3({
environment,
workspaceId,
secretPath,
secretKey: key,
secretValue: value || "",
secretComment: "",
type: SecretType.Shared
});
}); });
const results = await Promise.allSettled(promises); 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({ createNotification({
type: "success", 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({ createNotification({
type: "error", type: "error",
text: "Failed to create secrets" text: "Failed to create secrets"
}); });
} else {
onClose();
reset();
} }
}; };