request()

in salesforce/lib/connection.js [125:168]


    request(options) {
        if (typeof (options) === "string") {
            options = { method: "GET", url: request };
        }
        if (options.url[0] === "/") {
            if (options.url.indexOf("/services/") === 0) {
                options.url = this.instanceUrl + options.url;
            } else {
                options.url = this.baseUrl() + options.url;
            }
        }
        options.headers = options.headers || {};
        if (this.accessToken) {
            options.headers.Authorization = "Bearer " + this.accessToken;
        }
        if (this.callOptions) {
            let callOptions = [];
            for (let name in this.callOptions) {
                callOptions.push(name + "=" + this.callOptions[name]);
            }
            options.headers["Sforce-Call-Options"] = callOptions.join(", ");
        }
        options.resolveWithFullResponse = true;

        this.logger.debug("<request> method=" + options.method + ", url=" + options.url);
        let requestTime = Date.now();

        return request(options)
            .then((response) => {
                let responseTime = Date.now();
                this.logger.debug("elappsed time : " + (responseTime - requestTime) + "msec");
                this.logger.debug("<response> status=" + response.statusCode + ", url=" + request.url);
                return this.getResponseBody(response);
            })
            .catch((error) => {
                let responseTime = Date.now();
                this.logger.debug("elappsed time : " + (responseTime - requestTime) + "msec");
                this.logger.error(error);
                let err = new Error(error.message);
                err.name = error.errorCode;
                for (let key in error) { err[key] = error[key]; }
                throw err;
            });
    }