in salesforce/lib/query.js [70:109]
run(options) {
options = options || {};
let logger = this._conn.logger;
let responseTarget = options.responseTarget || this._options.responseTarget;
// let maxFetch = options.maxFetch || this._options.maxFetch;
return Promise.resolve(
this._locator ? this._conn.baseUrl() + "/query/" + this._locator
: this.toSOQL()
.then((soql) => {
this.totalFetched = 0;
logger.debug("SOQL = " + soql);
return this._conn.baseUrl() + "/query?q=" + encodeURIComponent(soql);
})
).then((url) => this._conn.request({
method: "GET",
url: url,
headers: options.headers || this._options.headers
})).then((data) => {
let response;
switch (responseTarget) {
case ResponseTargets.SingleRecord:
response = data.records && data.records.length > 0 ? data.records[0] : null;
break;
case ResponseTargets.Records:
response = data.records;
break;
case ResponseTargets.Count:
response = data.totalSize;
break;
default:
response = data;
break;
}
if (data.nextRecordsUrl) {
this._locator = data.nextRecordsUrl.split("/").pop();
}
return response;
});
}