From 1b2b926380993c4a3eab54a4f7073aaa361c0a53 Mon Sep 17 00:00:00 2001 From: RachelElysia <71795832+RachelElysia@users.noreply.github.com> Date: Wed, 29 Sep 2021 15:19:10 -0400 Subject: [PATCH] Delete Query UX: Better error handling if query is a part of policies (#2278) --- changes/issue-2059-delete-query-in-policy-ux | 1 + .../ManageQueriesPage/ManageQueriesPage.tsx | 27 ++++++++++++++----- 2 files changed, 21 insertions(+), 7 deletions(-) create mode 100644 changes/issue-2059-delete-query-in-policy-ux diff --git a/changes/issue-2059-delete-query-in-policy-ux b/changes/issue-2059-delete-query-in-policy-ux new file mode 100644 index 0000000000..f395979471 --- /dev/null +++ b/changes/issue-2059-delete-query-in-policy-ux @@ -0,0 +1 @@ +* Better error handling when a user tries to delete a query that is set in a policy \ No newline at end of file diff --git a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx index 199cf97adb..1de3e5d80e 100644 --- a/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx +++ b/frontend/pages/queries/ManageQueriesPage/ManageQueriesPage.tsx @@ -108,13 +108,26 @@ const ManageQueriesPage = (): JSX.Element => { toggleRemoveQueryModal(); dispatch(queryActions.loadAll()); }) - .catch(() => { - dispatch( - renderFlash( - "error", - `Unable to remove ${queryOrQueries}. Please try again.` - ) - ); + .catch((response) => { + if ( + response.base.slice(0, 47) === + "the operation violates a foreign key constraint" + ) { + dispatch( + renderFlash( + "error", + `Could not delete query because this query is used as a policy. First remove the policy and then try deleting the query again.` + ) + ); + dispatch(queryActions.loadAll()); + } else { + dispatch( + renderFlash( + "error", + `Unable to remove ${queryOrQueries}. Please try again.` + ) + ); + } toggleRemoveQueryModal(); }); }, [dispatch, selectedQueryIds, toggleRemoveQueryModal]);