in src/clients/apiClient.ts [123:176]
private async makeRequestRaw<T>(httpRequest: HttpRequest): Promise<HttpResponse<T>> {
const authHeader = httpRequest.headers.find(header => header.name === KnownHttpHeaders.Authorization);
const portalHeader = httpRequest.headers.find(header => header.name === Constants.portalHeaderName);
const isUserResourceHeader = httpRequest.headers.find(header => header.name === Constants.isUserResourceHeaderName);
let additionalPortalHeaderData = "";
if (!authHeader?.value) {
const accessToken = await this.authenticator.getAccessToken();
if (accessToken) {
httpRequest.headers.push({ name: KnownHttpHeaders.Authorization, value: `${accessToken.toString()}` });
} else {
if (!portalHeader) {
additionalPortalHeaderData += "unauthorized";
} else {
portalHeader.value = `${portalHeader.value}-unauthorized`;
}
}
if (isUserResourceHeader?.value == "true") {
httpRequest.url = this.setUserPrefix(httpRequest.url, accessToken?.userId);
const indexOfisUserHeader = httpRequest.headers.indexOf(isUserResourceHeader);
if (indexOfisUserHeader !== -1) {
httpRequest.headers.splice(indexOfisUserHeader, 1);
}
}
}
if (!portalHeader && httpRequest.method !== HttpMethod.head) {
httpRequest.headers.push(await this.getPortalHeader(additionalPortalHeaderData));
}
// Do nothing if absolute URL
if (!httpRequest.url.startsWith("https://") && !httpRequest.url.startsWith("http://")) {
httpRequest.url = `${this.baseUrl}${Utils.ensureLeadingSlash(httpRequest.url)}`;
}
if (!Utils.IsQueryParameterExists(httpRequest.url, "api-version")) {
httpRequest.url = Utils.addQueryParameter(httpRequest.url, `api-version=${this.getApiVersion()}`);
}
let response: HttpResponse<T>;
try {
response = await this.httpClient.send<T>(httpRequest);
this.logger.trackEvent(eventTypes.clientRequest, { message: `request response`, method: httpRequest.method, requestUrl: httpRequest.url, responseCode: response.statusCode+""});
}
catch (error) {
this.logger.trackEvent(eventTypes.clientRequest, { message: `request error: ${error?.message}`, method: httpRequest.method, requestUrl: httpRequest.url, responseCode: response?.statusCode+"" });
throw new Error(`Unable to complete request. Error: ${error.message}`);
}
return response;
}