From f16fde56d815ff5df86e27c7169e3a9babb2abf1 Mon Sep 17 00:00:00 2001 From: Volker Scheuber Date: Thu, 26 Jan 2023 20:53:50 -0600 Subject: [PATCH] rockcarver/frodo-cli#192: Backend support for better error handling and reporting in frodo-cli --- CHANGELOG.md | 4 ++++ src/ops/Saml2Ops.ts | 22 +++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66b46b52c..73e1c8fd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed + +- rockcarver/frodo-cli#192: Backend support for better error handling and reporting in frodo-cli + ## [0.18.2] - 2023-01-25 ### Added diff --git a/src/ops/Saml2Ops.ts b/src/ops/Saml2Ops.ts index dbd19de8a..fc3fdef8d 100644 --- a/src/ops/Saml2Ops.ts +++ b/src/ops/Saml2Ops.ts @@ -111,7 +111,6 @@ async function exportDependencies(providerData, fileData) { if (attrMapperScriptId && attrMapperScriptId !== '[Empty]') { const scriptData = await getScript(attrMapperScriptId); scriptData.script = convertBase64TextToArray(scriptData.script); - // eslint-disable-next-line no-param-reassign fileData.script[attrMapperScriptId] = scriptData; } const idpAdapterScriptId = _.get(providerData, [ @@ -123,11 +122,16 @@ async function exportDependencies(providerData, fileData) { if (idpAdapterScriptId && idpAdapterScriptId !== '[Empty]') { const scriptData = await getScript(idpAdapterScriptId); scriptData.script = convertBase64TextToArray(scriptData.script); - // eslint-disable-next-line no-param-reassign fileData.script[idpAdapterScriptId] = scriptData; } const metaDataResponse = await getProviderMetadata(providerData.entityId); - // eslint-disable-next-line no-param-reassign + if (!metaDataResponse) { + throw new Error( + `Unable to obtain metadata from ${getProviderMetadataUrl( + providerData.entityId + )}` + ); + } fileData.saml.metadata[providerData._id] = convertBase64UrlTextToArray( encodeBase64Url(metaDataResponse) ); @@ -225,7 +229,11 @@ export async function exportSaml2Provider( const id = stub._id; const providerData = await getProviderByLocationAndId(location, id); exportData.saml[stub.location][providerData._id] = providerData; - await exportDependencies(providerData, exportData); + try { + await exportDependencies(providerData, exportData); + } catch (error) { + printMessage(error.message, 'error'); + } debugMessage(`Saml2Ops.exportSaml2Provider: end [entityId=${entityId}]`); return exportData; } @@ -242,7 +250,11 @@ export async function exportSaml2Providers(): Promise { stub.location, stub._id ); - await exportDependencies(providerData, fileData); + try { + await exportDependencies(providerData, fileData); + } catch (error) { + printMessage(error, 'error'); + } fileData.saml[stub.location][providerData._id] = providerData; } return fileData;