jsforce
Version:
Salesforce API Library for JavaScript
116 lines (108 loc) • 10.6 kB
JavaScript
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
import _classCallCheck from "@babel/runtime-corejs3/helpers/classCallCheck";
import _createClass from "@babel/runtime-corejs3/helpers/createClass";
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
import _JSON$stringify from "@babel/runtime-corejs3/core-js-stable/json/stringify";
import "core-js/modules/es.regexp.exec.js";
import "core-js/modules/es.regexp.test.js";
/**
* @file Manages Salesforce Apex REST endpoint calls
* @author Shinichi Tomita <shinichi.tomita@gmail.com>
*/
import { registerModule } from '../jsforce';
/**
* API class for Apex REST endpoint call
*/
export var Apex = /*#__PURE__*/function () {
/**
*
*/
function Apex(conn) {
_classCallCheck(this, Apex);
/**
* Synonym of Apex#delete()
*/
_defineProperty(this, "del", this.delete);
this._conn = conn;
}
/* @private */
return _createClass(Apex, [{
key: "_baseUrl",
value: function _baseUrl() {
return "".concat(this._conn.instanceUrl, "/services/apexrest");
}
/**
* @private
*/
}, {
key: "_createRequestParams",
value: function _createRequestParams(method, path, body) {
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var headers = _typeof(options.headers) === 'object' ? options.headers : {};
if (!/^(GET|DELETE)$/i.test(method)) {
headers['content-type'] = 'application/json';
}
var params = {
method: method,
url: this._baseUrl() + path,
headers: headers
};
if (body) {
params.body = _JSON$stringify(body);
}
return params;
}
/**
* Call Apex REST service in GET request
*/
}, {
key: "get",
value: function get(path, options) {
return this._conn.request(this._createRequestParams('GET', path, undefined, options));
}
/**
* Call Apex REST service in POST request
*/
}, {
key: "post",
value: function post(path, body, options) {
var params = this._createRequestParams('POST', path, body, options);
return this._conn.request(params);
}
/**
* Call Apex REST service in PUT request
*/
}, {
key: "put",
value: function put(path, body, options) {
var params = this._createRequestParams('PUT', path, body, options);
return this._conn.request(params);
}
/**
* Call Apex REST service in PATCH request
*/
}, {
key: "patch",
value: function patch(path, body, options) {
var params = this._createRequestParams('PATCH', path, body, options);
return this._conn.request(params);
}
/**
* Call Apex REST service in DELETE request
*/
}, {
key: "delete",
value: function _delete(path, options) {
return this._conn.request(this._createRequestParams('DELETE', path, undefined, options));
}
}]);
}();
/*--------------------------------------------*/
/*
* Register hook in connection instantiation for dynamically adding this API module features
*/
registerModule('apex', function (conn) {
return new Apex(conn);
});
export default Apex;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJyZWdpc3Rlck1vZHVsZSIsIkFwZXgiLCJjb25uIiwiX2NsYXNzQ2FsbENoZWNrIiwiX2RlZmluZVByb3BlcnR5IiwiZGVsZXRlIiwiX2Nvbm4iLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJ2YWx1ZSIsIl9iYXNlVXJsIiwiY29uY2F0IiwiaW5zdGFuY2VVcmwiLCJfY3JlYXRlUmVxdWVzdFBhcmFtcyIsIm1ldGhvZCIsInBhdGgiLCJib2R5Iiwib3B0aW9ucyIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImhlYWRlcnMiLCJfdHlwZW9mIiwidGVzdCIsInBhcmFtcyIsInVybCIsIl9KU09OJHN0cmluZ2lmeSIsImdldCIsInJlcXVlc3QiLCJwb3N0IiwicHV0IiwicGF0Y2giXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYXBpL2FwZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAZmlsZSBNYW5hZ2VzIFNhbGVzZm9yY2UgQXBleCBSRVNUIGVuZHBvaW50IGNhbGxzXG4gKiBAYXV0aG9yIFNoaW5pY2hpIFRvbWl0YSA8c2hpbmljaGkudG9taXRhQGdtYWlsLmNvbT5cbiAqL1xuaW1wb3J0IHsgcmVnaXN0ZXJNb2R1bGUgfSBmcm9tICcuLi9qc2ZvcmNlJztcbmltcG9ydCBDb25uZWN0aW9uIGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBNZXRob2RzLCBTY2hlbWEgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQVBJIGNsYXNzIGZvciBBcGV4IFJFU1QgZW5kcG9pbnQgY2FsbFxuICovXG5leHBvcnQgY2xhc3MgQXBleDxTIGV4dGVuZHMgU2NoZW1hPiB7XG4gIF9jb25uOiBDb25uZWN0aW9uPFM+O1xuXG4gIC8qKlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IoY29ubjogQ29ubmVjdGlvbjxTPikge1xuICAgIHRoaXMuX2Nvbm4gPSBjb25uO1xuICB9XG5cbiAgLyogQHByaXZhdGUgKi9cbiAgX2Jhc2VVcmwoKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuX2Nvbm4uaW5zdGFuY2VVcmx9L3NlcnZpY2VzL2FwZXhyZXN0YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgX2NyZWF0ZVJlcXVlc3RQYXJhbXMoXG4gICAgbWV0aG9kOiBIdHRwTWV0aG9kcyxcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgYm9keT86IE9iamVjdCxcbiAgICBvcHRpb25zOiB7IGhlYWRlcnM/OiBIdHRwUmVxdWVzdFsnaGVhZGVycyddIH0gPSB7fSxcbiAgKTogSHR0cFJlcXVlc3Qge1xuICAgIGNvbnN0IGhlYWRlcnM6IEh0dHBSZXF1ZXN0WydoZWFkZXJzJ10gPVxuICAgICAgdHlwZW9mIG9wdGlvbnMuaGVhZGVycyA9PT0gJ29iamVjdCcgPyBvcHRpb25zLmhlYWRlcnMgOiB7fTtcbiAgICBpZiAoIS9eKEdFVHxERUxFVEUpJC9pLnRlc3QobWV0aG9kKSkge1xuICAgICAgaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbic7XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtczogSHR0cFJlcXVlc3QgPSB7XG4gICAgICBtZXRob2QsXG4gICAgICB1cmw6IHRoaXMuX2Jhc2VVcmwoKSArIHBhdGgsXG4gICAgICBoZWFkZXJzLFxuICAgIH07XG4gICAgaWYgKGJvZHkpIHtcbiAgICAgIHBhcmFtcy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoYm9keSk7XG4gICAgfVxuICAgIHJldHVybiBwYXJhbXM7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBBcGV4IFJFU1Qgc2VydmljZSBpbiBHRVQgcmVxdWVzdFxuICAgKi9cbiAgZ2V0PFIgPSB1bmtub3duPihwYXRoOiBzdHJpbmcsIG9wdGlvbnM/OiBPYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5fY29ubi5yZXF1ZXN0PFI+KFxuICAgICAgdGhpcy5fY3JlYXRlUmVxdWVzdFBhcmFtcygnR0VUJywgcGF0aCwgdW5kZWZpbmVkLCBvcHRpb25zKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgQXBleCBSRVNUIHNlcnZpY2UgaW4gUE9TVCByZXF1ZXN0XG4gICAqL1xuICBwb3N0PFIgPSB1bmtub3duPihwYXRoOiBzdHJpbmcsIGJvZHk/OiBPYmplY3QsIG9wdGlvbnM/OiBPYmplY3QpIHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLl9jcmVhdGVSZXF1ZXN0UGFyYW1zKCdQT1NUJywgcGF0aCwgYm9keSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdDxSPihwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgQXBleCBSRVNUIHNlcnZpY2UgaW4gUFVUIHJlcXVlc3RcbiAgICovXG4gIHB1dDxSID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBib2R5PzogT2JqZWN0LCBvcHRpb25zPzogT2JqZWN0KSB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy5fY3JlYXRlUmVxdWVzdFBhcmFtcygnUFVUJywgcGF0aCwgYm9keSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdDxSPihwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgQXBleCBSRVNUIHNlcnZpY2UgaW4gUEFUQ0ggcmVxdWVzdFxuICAgKi9cbiAgcGF0Y2g8UiA9IHVua25vd24+KHBhdGg6IHN0cmluZywgYm9keT86IE9iamVjdCwgb3B0aW9ucz86IE9iamVjdCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuX2NyZWF0ZVJlcXVlc3RQYXJhbXMoJ1BBVENIJywgcGF0aCwgYm9keSwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdDxSPihwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgQXBleCBSRVNUIHNlcnZpY2UgaW4gREVMRVRFIHJlcXVlc3RcbiAgICovXG4gIGRlbGV0ZTxSID0gdW5rbm93bj4ocGF0aDogc3RyaW5nLCBvcHRpb25zPzogT2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm4ucmVxdWVzdDxSPihcbiAgICAgIHRoaXMuX2NyZWF0ZVJlcXVlc3RQYXJhbXMoJ0RFTEVURScsIHBhdGgsIHVuZGVmaW5lZCwgb3B0aW9ucyksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5vbnltIG9mIEFwZXgjZGVsZXRlKClcbiAgICovXG4gIGRlbCA9IHRoaXMuZGVsZXRlO1xufVxuXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbi8qXG4gKiBSZWdpc3RlciBob29rIGluIGNvbm5lY3Rpb24gaW5zdGFudGlhdGlvbiBmb3IgZHluYW1pY2FsbHkgYWRkaW5nIHRoaXMgQVBJIG1vZHVsZSBmZWF0dXJlc1xuICovXG5yZWdpc3Rlck1vZHVsZSgnYXBleCcsIChjb25uKSA9PiBuZXcgQXBleChjb25uKSk7XG5cbmV4cG9ydCBkZWZhdWx0IEFwZXg7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLGNBQWMsUUFBUSxZQUFZO0FBSTNDO0FBQ0E7QUFDQTtBQUNBLFdBQWFDLElBQUk7RUFHZjtBQUNGO0FBQ0E7RUFDRSxTQUFBQSxLQUFZQyxJQUFtQixFQUFFO0lBQUFDLGVBQUEsT0FBQUYsSUFBQTtJQTRFakM7QUFDRjtBQUNBO0lBRkVHLGVBQUEsY0FHTSxJQUFJLENBQUNDLE1BQU07SUE5RWYsSUFBSSxDQUFDQyxLQUFLLEdBQUdKLElBQUk7RUFDbkI7O0VBRUE7RUFBQSxPQUFBSyxZQUFBLENBQUFOLElBQUE7SUFBQU8sR0FBQTtJQUFBQyxLQUFBLEVBQ0EsU0FBQUMsUUFBUUEsQ0FBQSxFQUFHO01BQ1QsVUFBQUMsTUFBQSxDQUFVLElBQUksQ0FBQ0wsS0FBSyxDQUFDTSxXQUFXO0lBQ2xDOztJQUVBO0FBQ0Y7QUFDQTtFQUZFO0lBQUFKLEdBQUE7SUFBQUMsS0FBQSxFQUdBLFNBQUFJLG9CQUFvQkEsQ0FDbEJDLE1BQW1C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