From 94612d6c652a764b58ec48d6d663aa0978080dd1 Mon Sep 17 00:00:00 2001 From: Tony Date: Wed, 11 Nov 2020 12:47:56 -0800 Subject: [PATCH] Allowed 404 to fall through axios during import flow --- .../components/ImportModal/ImportModal.tsx | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Composer/packages/client/src/components/ImportModal/ImportModal.tsx b/Composer/packages/client/src/components/ImportModal/ImportModal.tsx index 6f138bbed8..368d9f4b53 100644 --- a/Composer/packages/client/src/components/ImportModal/ImportModal.tsx +++ b/Composer/packages/client/src/components/ImportModal/ImportModal.tsx @@ -136,9 +136,6 @@ export const ImportModal: React.FC = (props) => { const res = await axios.post<{ alias: string; eTag: string; templateDir: string; urlSuffix: string }>( `/api/import/${importSource}?payload=${encodeURIComponent(JSON.stringify(importPayload))}` ); - if (res.status !== 200) { - throw new Error(`Something went wrong during import: ${res.status} ${res.statusText}`); - } const { alias, eTag, templateDir, urlSuffix } = res.data; const projectInfo = { description, @@ -153,9 +150,17 @@ export const ImportModal: React.FC = (props) => { if (alias) { // check to see if Composer currently has a bot project corresponding to the alias - const aliasRes = await axios.get(`/api/projects/alias/${alias}`); + const aliasRes = await axios.get(`/api/projects/alias/${alias}`, { + validateStatus: (status) => { + // a 404 should fall through + if (status === 404) { + return true; + } + return status >= 200 && status < 300; + }, + }); if (aliasRes.status === 200) { - const project = await aliasRes.data; + const project = aliasRes.data; setExistingProject(project); // ask user if they want to save to existing, or save as a new project setModalState('promptingToSave'); @@ -165,7 +170,7 @@ export const ImportModal: React.FC = (props) => { importAsNewProject(projectInfo); } catch (e) { // something went wrong, abort and navigate to the home page - console.error(`Aborting import: ${e}`); + console.error(`Something went wrong during import: ${e}`); navigate('/home'); } } @@ -178,16 +183,13 @@ export const ImportModal: React.FC = (props) => { if (modalState === 'signingIn') { const signIn = async () => { try { - const res = await axios.post( + await axios.post( `/api/import/${importSource}/authenticate?payload=${encodeURIComponent(JSON.stringify(importPayload))}` ); - if (res.status !== 200) { - throw new Error(`Something went wrong during authenticating import: ${res.status} ${res.statusText}`); - } setModalState('downloadingContent'); } catch (e) { // something went wrong, abort and navigate to the home page - console.error(`Aborting import: ${e}`); + console.error(`Something went wrong during authenticating import: ${e}`); navigate('/home'); } };