UNPKG

sf-composite-call

Version:

Support for making Salesforce composite call requests with integration for JSforce.

101 lines (100 loc) 4.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CompositeSubrequestQuery = void 0; const Helpers_1 = require("./Helpers"); const CompositeSubrequest_1 = require("./CompositeSubrequest"); /** * @description Class for SOQL query and queryAll Composite Subrequests. * @augments CompositeSubrequest * @param {string} query - A SOQL query. * @param {string} [referenceId] - The reference ID of the query subrequest. * @param {string} [version] - The version of the Salesforce API to use. */ class CompositeSubrequestQuery extends CompositeSubrequest_1.CompositeSubrequest { constructor(query, referenceId, version) { super(referenceId, version); this.soql = query; this.verb = 'query'; } url() { return super.url() + `/${this.verb}`; } get subrequest() { if (Helpers_1.isNullOrUndefined(this.obj)) { return this.get(); } return this.obj; } /** * @description Base request method for query operations. * @param {string} [queryId] - **Optional.** The word `explain` or the `nextRecordsUrl` of a query. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ get(queryId, httpHeaders) { const soql = this.soql.replace(/\s/gu, '+'); this.obj = this.makeRequest(null, Helpers_1.isNullOrUndefined(queryId) ? this.url() + `?q=${soql}` : queryId.trim().toLowerCase() === 'explain' ? this.url() + `?explain=${soql}` : queryId, undefined, httpHeaders); return this.obj; } /** * @description Method for creating an `explain` operation. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ explain(httpHeaders) { this.verb = 'query'; return this.get('explain', httpHeaders); } /** * @description Method for creating an `explain` operation with queryAll. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ explainAll(httpHeaders) { this.verb = 'queryAll'; return this.get('explain', httpHeaders); } /** * @description Method for creating an operation to obtain next records. * @param {string} nextRecordsUrl - The `nextRecordsUrl` of a query. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ nextRecords(nextRecordsUrl, httpHeaders) { this.verb = 'query'; return this.get(nextRecordsUrl, httpHeaders); } /** * @description Method for creating an operation to obtain next records with queryAll. * @param {string} nextRecordsUrl - The `nextRecordsUrl` of a query. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ nextRecordsAll(nextRecordsUrl, httpHeaders) { this.verb = 'queryAll'; return this.get(nextRecordsUrl, httpHeaders); } /** * @description Method for creating a `query` operation. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ query(httpHeaders) { this.verb = 'query'; return this.get(null, httpHeaders); } /** * @description Method for creating a `query` operation with queryAll. * @param {object} [httpHeaders] - **Optional.** Additional HTTP headers to include in the request. * @returns {CompositeSubrequestBody} - A subrequest object. */ queryAll(httpHeaders) { this.verb = 'queryAll'; return this.get(null, httpHeaders); } } exports.CompositeSubrequestQuery = CompositeSubrequestQuery;