private async makeRequestRaw()

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;
    }