From 0c480dd5ecafe6cf4ab06abde8f59c377b0e4b07 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Mon, 21 Aug 2023 11:00:45 -0700 Subject: [PATCH] Handle errors for Set Policy for Access keys (#3005) Signed-off-by: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> --- .../src/screens/Console/Account/Account.tsx | 34 ++++++++++--------- .../Account/AddServiceAccountScreen.tsx | 11 +++--- .../Console/Account/ServiceAccountPolicy.tsx | 16 +++++---- 3 files changed, 33 insertions(+), 28 deletions(-) diff --git a/portal-ui/src/screens/Console/Account/Account.tsx b/portal-ui/src/screens/Console/Account/Account.tsx index f6110934b..57f15cd26 100644 --- a/portal-ui/src/screens/Console/Account/Account.tsx +++ b/portal-ui/src/screens/Console/Account/Account.tsx @@ -34,31 +34,32 @@ import { actionsTray } from "../Common/FormComponents/common/styleLibrary"; import ChangePasswordModal from "./ChangePasswordModal"; import SearchBox from "../Common/SearchBox"; import withSuspense from "../Common/Components/withSuspense"; -import { - CONSOLE_UI_RESOURCE, - IAM_PAGES, - IAM_SCOPES, -} from "../../../common/SecureComponent/permissions"; -import { SecureComponent } from "../../../common/SecureComponent"; import { selectSAs } from "../Configurations/utils"; import DeleteMultipleServiceAccounts from "../Users/DeleteMultipleServiceAccounts"; import ServiceAccountPolicy from "./ServiceAccountPolicy"; -import { - setErrorSnackMessage, - setHelpName, - setSnackBarMessage, -} from "../../../systemSlice"; + import { selFeatures } from "../consoleSlice"; -import { useAppDispatch } from "../../../store"; import TooltipWrapper from "../Common/TooltipWrapper/TooltipWrapper"; import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper"; import { api } from "api"; import { errorToHandler } from "api/errors"; import HelpMenu from "../HelpMenu"; -import { ServiceAccounts } from "../../../api/consoleApi"; -import { usersSort } from "../../../utils/sortFunctions"; import { ACCOUNT_TABLE_COLUMNS } from "./AccountUtils"; +import { useAppDispatch } from "store"; +import { ApiError, ServiceAccounts } from "api/consoleApi"; +import { + setErrorSnackMessage, + setHelpName, + setSnackBarMessage, +} from "systemSlice"; +import { usersSort } from "utils/sortFunctions"; +import { SecureComponent } from "common/SecureComponent"; +import { + CONSOLE_UI_RESOURCE, + IAM_PAGES, + IAM_SCOPES, +} from "common/SecureComponent/permissions"; const DeleteServiceAccount = withSuspense( React.lazy(() => import("./DeleteServiceAccount")), @@ -103,8 +104,9 @@ const Account = () => { const sortedRows = res.data.sort(usersSort); setRecords(sortedRows); }) - .catch((err) => { - dispatch(setErrorSnackMessage(errorToHandler(err.error))); + .catch(async (res) => { + const err = (await res.json()) as ApiError; + dispatch(setErrorSnackMessage(errorToHandler(err))); setLoading(false); }); } diff --git a/portal-ui/src/screens/Console/Account/AddServiceAccountScreen.tsx b/portal-ui/src/screens/Console/Account/AddServiceAccountScreen.tsx index 92e4c0f71..17d0a94b9 100644 --- a/portal-ui/src/screens/Console/Account/AddServiceAccountScreen.tsx +++ b/portal-ui/src/screens/Console/Account/AddServiceAccountScreen.tsx @@ -33,17 +33,17 @@ import { modalStyleUtils } from "../Common/FormComponents/common/styleLibrary"; import { NewServiceAccount } from "../Common/CredentialsPrompt/types"; import { IAM_PAGES } from "../../../common/SecureComponent/permissions"; import { setErrorSnackMessage, setHelpName } from "../../../systemSlice"; -import { useAppDispatch } from "../../../store"; -import { getRandomString } from "../../../common/utils"; import { api } from "api"; import { errorToHandler } from "api/errors"; -import { ContentType } from "api/consoleApi"; +import { ApiError, ContentType } from "api/consoleApi"; import CodeMirrorWrapper from "../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper"; import AddServiceAccountHelpBox from "./AddServiceAccountHelpBox"; import CredentialsPrompt from "../Common/CredentialsPrompt/CredentialsPrompt"; import PanelTitle from "../Common/PanelTitle/PanelTitle"; import PageHeaderWrapper from "../Common/PageHeaderWrapper/PageHeaderWrapper"; import HelpMenu from "../HelpMenu"; +import { useAppDispatch } from "store"; +import { getRandomString } from "common/utils"; const AddServiceAccount = () => { const dispatch = useAppDispatch(); @@ -83,9 +83,10 @@ const AddServiceAccount = () => { }); }) - .catch((err) => { + .catch(async (res) => { setAddSending(false); - dispatch(setErrorSnackMessage(errorToHandler(err.error))); + const err = (await res.json()) as ApiError; + dispatch(setErrorSnackMessage(errorToHandler(err))); }); } }, [addSending, setAddSending, dispatch, policyJSON, accessKey, secretKey]); diff --git a/portal-ui/src/screens/Console/Account/ServiceAccountPolicy.tsx b/portal-ui/src/screens/Console/Account/ServiceAccountPolicy.tsx index b4a0684e3..e33558d0b 100644 --- a/portal-ui/src/screens/Console/Account/ServiceAccountPolicy.tsx +++ b/portal-ui/src/screens/Console/Account/ServiceAccountPolicy.tsx @@ -16,14 +16,15 @@ import React, { useEffect, useState } from "react"; import { Button, ChangeAccessPolicyIcon, Grid } from "mds"; -import { modalStyleUtils } from "../Common/FormComponents/common/styleLibrary"; -import { encodeURLString } from "../../../common/utils"; -import { setModalErrorSnackMessage } from "../../../systemSlice"; -import { useAppDispatch } from "../../../store"; import { api } from "api"; import { errorToHandler } from "api/errors"; -import ModalWrapper from "../Common/ModalWrapper/ModalWrapper"; import CodeMirrorWrapper from "../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper"; +import { ApiError } from "api/consoleApi"; +import { useAppDispatch } from "store"; +import { encodeURLString } from "common/utils"; +import { setErrorSnackMessage, setModalErrorSnackMessage } from "systemSlice"; +import ModalWrapper from "../Common/ModalWrapper/ModalWrapper"; +import { modalStyleUtils } from "../Common/FormComponents/common/styleLibrary"; interface IServiceAccountPolicyProps { open: boolean; @@ -66,8 +67,9 @@ const ServiceAccountPolicy = ({ .then(() => { closeModalAndRefresh(); }) - .catch((err) => { - dispatch(setModalErrorSnackMessage(errorToHandler(err))); + .catch(async (res) => { + const err = (await res.json()) as ApiError; + dispatch(setErrorSnackMessage(errorToHandler(err))); }); };