@@ -35,6 +35,7 @@ import { QuickPickProvider } from "./webViews/QuickPickProvider";
3535import { UserCollaborationProvider } from "./webViews/userCollaborationProvider" ;
3636import { GraphClientService } from "./services/graphClientService" ;
3737import { ServiceEndpointCategory } from "../../common/services/Constants" ;
38+ import { createHttpResponseError , isHttpResponseError } from "./utilities/errorHandlerUtil" ;
3839
3940export interface IWebExtensionContext {
4041 // From portalSchema properties
@@ -576,7 +577,7 @@ class WebExtensionContext implements IWebExtensionContext {
576577 headers : getCommonHeadersForDataverse ( accessToken ) ,
577578 } ) ;
578579 if ( ! response ?. ok ) {
579- throw new Error ( JSON . stringify ( response ) ) ;
580+ throw await createHttpResponseError ( response ) ;
580581 }
581582 this . telemetry . sendAPISuccessTelemetry (
582583 requestUrl ,
@@ -592,8 +593,8 @@ class WebExtensionContext implements IWebExtensionContext {
592593 schema
593594 ) ;
594595 } catch ( error ) {
595- if ( ( error as Response ) ?. status > 0 ) {
596- const errorMsg = ( error as Error ) ?. message ;
596+ const errorMsg = ( error as Error ) ?. message ;
597+ if ( isHttpResponseError ( error ) && error . httpDetails ) {
597598 this . telemetry . sendAPIFailureTelemetry (
598599 requestUrl ,
599600 languageEntityName ,
@@ -602,13 +603,13 @@ class WebExtensionContext implements IWebExtensionContext {
602603 this . populateLanguageIdToCode . name ,
603604 errorMsg ,
604605 '' ,
605- ( error as Response ) ?. status . toString ( ) ,
606+ error . httpDetails . statusCode . toString ( ) ,
606607 ) ;
607608 } else {
608609 this . telemetry . sendErrorTelemetry (
609610 webExtensionTelemetryEventNames . WEB_EXTENSION_POPULATE_LANGUAGE_ID_TO_CODE_SYSTEM_ERROR ,
610611 this . populateLanguageIdToCode . name ,
611- ( error as Error ) ?. message ,
612+ errorMsg ,
612613 error as Error
613614 ) ;
614615 }
@@ -642,7 +643,7 @@ class WebExtensionContext implements IWebExtensionContext {
642643 headers : getCommonHeadersForDataverse ( accessToken ) ,
643644 } ) ;
644645 if ( ! response ?. ok ) {
645- throw new Error ( JSON . stringify ( response ) ) ;
646+ throw await createHttpResponseError ( response ) ;
646647 }
647648 this . telemetry . sendAPISuccessTelemetry (
648649 requestUrl ,
@@ -655,8 +656,8 @@ class WebExtensionContext implements IWebExtensionContext {
655656 this . _websiteLanguageIdToPortalLanguageMap =
656657 getWebsiteLanguageIdToPortalLanguageIdMap ( result , schema ) ;
657658 } catch ( error ) {
658- if ( ( error as Response ) ?. status > 0 ) {
659- const errorMsg = ( error as Error ) ?. message ;
659+ const errorMsg = ( error as Error ) ?. message ;
660+ if ( isHttpResponseError ( error ) && error . httpDetails ) {
660661 this . telemetry . sendAPIFailureTelemetry (
661662 requestUrl ,
662663 languageEntityName ,
@@ -665,13 +666,13 @@ class WebExtensionContext implements IWebExtensionContext {
665666 this . populateWebsiteLanguageIdToPortalLanguageMap . name ,
666667 errorMsg ,
667668 '' ,
668- ( error as Response ) ?. status . toString ( )
669+ error . httpDetails . statusCode . toString ( )
669670 ) ;
670671 } else {
671672 this . telemetry . sendErrorTelemetry (
672673 webExtensionTelemetryEventNames . WEB_EXTENSION_POPULATE_WEBSITE_LANGUAGE_ID_TO_PORTALLANGUAGE_SYSTEM_ERROR ,
673674 this . populateWebsiteLanguageIdToPortalLanguageMap . name ,
674- ( error as Error ) ?. message ,
675+ errorMsg ,
675676 error as Error
676677 ) ;
677678 }
@@ -705,7 +706,7 @@ class WebExtensionContext implements IWebExtensionContext {
705706 } ) ;
706707
707708 if ( ! response ?. ok ) {
708- throw new Error ( JSON . stringify ( response ) ) ;
709+ throw await createHttpResponseError ( response ) ;
709710 }
710711 this . telemetry . sendAPISuccessTelemetry (
711712 requestUrl ,
@@ -717,8 +718,8 @@ class WebExtensionContext implements IWebExtensionContext {
717718 const result = await response ?. json ( ) ;
718719 this . _websiteIdToLanguage = getWebsiteIdToLcidMap ( result , schema ) ;
719720 } catch ( error ) {
720- if ( ( error as Response ) ?. status > 0 ) {
721- const errorMsg = ( error as Error ) ?. message ;
721+ const errorMsg = ( error as Error ) ?. message ;
722+ if ( isHttpResponseError ( error ) && error . httpDetails ) {
722723 this . telemetry . sendAPIFailureTelemetry (
723724 requestUrl ,
724725 websiteEntityName ,
@@ -727,13 +728,13 @@ class WebExtensionContext implements IWebExtensionContext {
727728 this . populateWebsiteIdToLanguageMap . name ,
728729 errorMsg ,
729730 '' ,
730- ( error as Response ) ?. status . toString ( )
731+ error . httpDetails . statusCode . toString ( )
731732 ) ;
732733 } else {
733734 this . telemetry . sendErrorTelemetry (
734735 webExtensionTelemetryEventNames . WEB_EXTENSION_POPULATE_WEBSITE_ID_TO_LANGUAGE_SYSTEM_ERROR ,
735736 this . populateWebsiteIdToLanguageMap . name ,
736- ( error as Error ) ?. message ,
737+ errorMsg ,
737738 error as Error
738739 ) ;
739740 }
0 commit comments