protected _performApiCall()

in src/GenericRestClient.ts [50:90]


    protected _performApiCall<T>(apiPath: string,
            action: HttpAction,
            objToPost: any,
            givenOptions: Partial<ApiCallOptions & TCustomOptions> = {}): ApiCallResponse<T, TCustomOptions> {

        const options: ApiCallOptions & Partial<TCustomOptions> = { ...this._defaultOptions, ...givenOptions };
        if (objToPost) {
            options.sendData = objToPost;
        }

        if (options.eTag) {
            if (!options.augmentHeaders) {
                options.augmentHeaders = {};
            }
            options.augmentHeaders['If-None-Match'] = options.eTag;
        }

        if (!options.contentType) {
            options.contentType = isString(options.sendData) ? 'form' : 'json';
        }

        const finalUrl = options.excludeEndpointUrl ? apiPath : this._endpointUrl + apiPath;

        const req = new SimpleWebRequest<T, ApiCallOptions & Partial<TCustomOptions>>(
            action,
            finalUrl,
            options,
            () => this._getHeaders(options),
            () => this._blockRequestUntil(options),
        );

        const promise = req.start().then(response => {
            this._processSuccessResponse<T>(response);
            return response;
        });

        return {
            req,
            promise,
        };
    }