From 5cbd1fa40bba41005ba4b951d0a187aaeaaa6121 Mon Sep 17 00:00:00 2001 From: amitjoshi Date: Wed, 4 Sep 2024 17:14:36 +0530 Subject: [PATCH] refactor: Initialize organization details in OrgHandlerUtils This commit refactors the `initializeOrgDetails` function in `OrgHandlerUtils.ts` to improve the initialization of organization details. It now retrieves stored organization details from the global state and returns them if available. If not, it uses the PAC wrapper to fetch the organization details and stores them in the global state for future use. This change enhances the efficiency and reliability of the organization details initialization process. --- src/common/utilities/OrgHandlerUtils.ts | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/common/utilities/OrgHandlerUtils.ts b/src/common/utilities/OrgHandlerUtils.ts index 1b111c68..11df4959 100644 --- a/src/common/utilities/OrgHandlerUtils.ts +++ b/src/common/utilities/OrgHandlerUtils.ts @@ -37,23 +37,32 @@ export async function initializeOrgDetails( extensionContext: ExtensionContext, pacWrapper?: PacWrapper ): Promise { + const orgDetails: IOrgDetails = { orgID: '', orgUrl: '', environmentID: '' }; + if (isOrgDetailsInitialized) { - return { orgID: '', orgUrl: '', environmentID: '' }; + return orgDetails; } - const orgDetails: IOrgDetails | undefined = extensionContext.globalState.get(ORG_DETAILS_KEY); - if (orgDetails && orgDetails.orgID && orgDetails.orgUrl && orgDetails.environmentID) { - return orgDetails; + // Get stored organization details from global state + const storedOrgDetails: IOrgDetails | undefined = extensionContext.globalState.get(ORG_DETAILS_KEY); + if (storedOrgDetails && storedOrgDetails.orgID && storedOrgDetails.orgUrl && storedOrgDetails.environmentID) { + return storedOrgDetails; } if (pacWrapper) { try { - return await fetchOrgDetailsFromPac(pacWrapper, extensionContext); + const fetchedOrgDetails = await fetchOrgDetailsFromPac(pacWrapper, extensionContext); + orgDetails.orgID = fetchedOrgDetails.orgID; + orgDetails.orgUrl = fetchedOrgDetails.orgUrl; + orgDetails.environmentID = fetchedOrgDetails.environmentID; } catch (error) { await createAuthProfileExp(pacWrapper); - return await fetchOrgDetailsFromPac(pacWrapper, extensionContext); + const fetchedOrgDetails = await fetchOrgDetailsFromPac(pacWrapper, extensionContext); + orgDetails.orgID = fetchedOrgDetails.orgID; + orgDetails.orgUrl = fetchedOrgDetails.orgUrl; + orgDetails.environmentID = fetchedOrgDetails.environmentID; } } - return { orgID: '', orgUrl: '', environmentID: '' }; + return orgDetails; }