in src/services/mapiClient.ts [117:160]
protected async makeRequest<T>(httpRequest: HttpRequest): Promise<T> {
const authHeader = httpRequest.headers.find(header => header.name === KnownHttpHeaders.Authorization);
const portalHeader = httpRequest.headers.find(header => header.name === Constants.portalHeaderName);
if (!authHeader?.value) {
const accessToken = await this.authenticator.getAccessTokenAsString();
if (accessToken) {
httpRequest.headers.push({ name: KnownHttpHeaders.Authorization, value: `${accessToken}` });
} else {
if (!portalHeader) {
httpRequest.headers.push(await this.getPortalHeader("unauthorized"));
} else {
portalHeader.value = `${portalHeader.value}-unauthorized`;
}
}
}
if (!portalHeader && httpRequest.method !== HttpMethod.head) {
httpRequest.headers.push(await this.getPortalHeader());
}
// Do nothing if absolute URL
if (!httpRequest.url.startsWith("https://") && !httpRequest.url.startsWith("http://")) {
httpRequest.url = `${this.managementApiUrl}${Utils.ensureLeadingSlash(httpRequest.url)}`;
}
const url = new URL(httpRequest.url);
if (!url.searchParams.has("api-version")) {
httpRequest.url = Utils.addQueryParameter(httpRequest.url, `api-version=${Constants.managementApiVersion}`);
}
let response: HttpResponse<T>;
try {
response = await this.httpClient.send<T>(httpRequest);
}
catch (error) {
throw new Error(`Unable to complete request. Error: ${error.message}`);
}
return await this.handleResponse<T>(response, httpRequest.url);
}