diff --git a/extensions/azurecore/src/account-provider/auths/azureAuth.ts b/extensions/azurecore/src/account-provider/auths/azureAuth.ts index 1f305114cd..df25fe22ae 100644 --- a/extensions/azurecore/src/account-provider/auths/azureAuth.ts +++ b/extensions/azurecore/src/account-provider/auths/azureAuth.ts @@ -29,7 +29,7 @@ import { HttpClient } from './httpClient'; import { getProxyEnabledHttpClient, getTenantIgnoreList, updateTenantIgnoreList } from '../../utils'; import { errorToPromptFailedResult } from './networkUtils'; import { MsalCachePluginProvider } from '../utils/msalCachePlugin'; -import { AzureListOperationResponse, ErrorResponseBodyWithError, isErrorResponseBody as isErrorResponseBodyWithError } from '../../azureResource/utils'; +import { AzureListOperationResponse, ErrorResponseBodyWithError, isErrorResponseBodyWithError } from '../../azureResource/utils'; const localize = nls.loadMessageBundle(); export abstract class AzureAuth implements vscode.Disposable { diff --git a/extensions/azurecore/src/azureResource/utils.ts b/extensions/azurecore/src/azureResource/utils.ts index a195f99b7e..327f5bcc0b 100644 --- a/extensions/azurecore/src/azureResource/utils.ts +++ b/extensions/azurecore/src/azureResource/utils.ts @@ -6,7 +6,7 @@ import { ResourceGraphClient } from '@azure/arm-resourcegraph'; import { TokenCredentials } from '@azure/ms-rest-js'; import * as azdata from 'azdata'; -import { AzureRestResponse, GetResourceGroupsResult, GetSubscriptionsResult, ResourceQueryResult, GetBlobContainersResult, GetFileSharesResult, HttpRequestMethod, GetLocationsResult, GetManagedDatabasesResult, CreateResourceGroupResult, GetBlobsResult, GetStorageAccountAccessKeyResult, AzureAccount, azureResource, AzureAccountProviderMetadata, AzureNetworkResponse, HttpClientResponse } from 'azurecore'; +import { AzureRestResponse, GetResourceGroupsResult, GetSubscriptionsResult, ResourceQueryResult, GetBlobContainersResult, GetFileSharesResult, HttpRequestMethod, GetLocationsResult, GetManagedDatabasesResult, CreateResourceGroupResult, GetBlobsResult, GetStorageAccountAccessKeyResult, AzureAccount, azureResource, AzureAccountProviderMetadata, AzureNetworkResponse } from 'azurecore'; import { EOL } from 'os'; import * as nls from 'vscode-nls'; import { AppContext } from '../appContext'; @@ -38,7 +38,7 @@ export type ErrorResponseBodyWithError = Required; * @param body The body object to check * @returns True if the body is an ErrorResponseBodyWithError */ -export function isErrorResponseBody(body: any): body is ErrorResponseBodyWithError { +export function isErrorResponseBodyWithError(body: any): body is ErrorResponseBodyWithError { return 'error' in body && body.error; } @@ -462,21 +462,21 @@ export async function makeHttpRequest( requestUrl = `${account.properties.providerSettings.settings.armResource.endpoint}${path}`; } - let response: AzureNetworkResponse> | undefined = undefined; + let response: AzureNetworkResponse | undefined = undefined; switch (requestType) { case HttpRequestMethod.GET: - response = await httpClient.sendGetRequestAsync>(requestUrl, { + response = await httpClient.sendGetRequestAsync(requestUrl, { headers: reqHeaders }); break; case HttpRequestMethod.POST: - response = await httpClient.sendPostRequestAsync>(requestUrl, networkRequestOptions); + response = await httpClient.sendPostRequestAsync(requestUrl, networkRequestOptions); break; case HttpRequestMethod.PUT: - response = await httpClient.sendPutRequestAsync>(requestUrl, networkRequestOptions); + response = await httpClient.sendPutRequestAsync(requestUrl, networkRequestOptions); break; case HttpRequestMethod.DELETE: - response = await httpClient.sendDeleteRequestAsync>(requestUrl, { + response = await httpClient.sendDeleteRequestAsync(requestUrl, { headers: reqHeaders }); break; @@ -497,22 +497,18 @@ export async function makeHttpRequest( } else if (response.status < 200 || response.status > 299) { let errorMessage: string[] = []; errorMessage.push(response.status.toString()); - if (response.data && response.data.error) { - errorMessage.push(`${response.data.error.code} : ${response.data.error.message}`); + const data = response.data; + if (isErrorResponseBodyWithError(data)) { + errorMessage.push(`${data.error.code} : ${data.error.message}`); } const error = new Error(errorMessage.join(EOL)); if (!ignoreErrors) { throw error; } result.errors.push(error); - } - - if (response) { - result.response = { - headers: response.headers, - data: response.data.body, - status: response.status - }; + } else { + // We know this isn't an error response at this point + result.response = response as AzureNetworkResponse; } return result; diff --git a/extensions/azurecore/src/azurecore.d.ts b/extensions/azurecore/src/azurecore.d.ts index 3cd729daca..10a550b3d1 100644 --- a/extensions/azurecore/src/azurecore.d.ts +++ b/extensions/azurecore/src/azurecore.d.ts @@ -287,13 +287,6 @@ declare module 'azurecore' { status: number; }; - export interface HttpClientResponse { - body: B; - headers: any; - status: Number; - error: any; - } - export interface IExtension { /** * Gets the list of subscriptions for the specified AzureAccount