improvement: add name constraint error feedback to update cmek

This commit is contained in:
Scott Wilson
2025-02-05 17:36:52 -08:00
parent 598dea0dd3
commit b7d4bb0ce2
+16 -6
View File
@@ -86,13 +86,23 @@ export const cmekServiceFactory = ({ kmsService, kmsDAL, permissionService, proj
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionCmekActions.Edit, ProjectPermissionSub.Cmek); ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionCmekActions.Edit, ProjectPermissionSub.Cmek);
const cmek = await kmsDAL.updateById(keyId, data); try {
const cmek = await kmsDAL.updateById(keyId, data);
return { return {
...cmek, ...cmek,
version: key.version, version: key.version,
encryptionAlgorithm: key.encryptionAlgorithm encryptionAlgorithm: key.encryptionAlgorithm
}; };
} catch (err) {
if (err instanceof DatabaseError && (err.error as { code: string })?.code === DatabaseErrorCode.UniqueViolation) {
throw new BadRequestError({
message: `A KMS key with the name "${data.name!}" already exists for the project with ID "${key.projectId}"`
});
}
throw err;
}
}; };
const deleteCmekById = async (keyId: string, actor: OrgServiceActor) => { const deleteCmekById = async (keyId: string, actor: OrgServiceActor) => {