UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

83 lines (79 loc) 2.78 kB
/** * @package @bitrix24/b24jssdk * @version 2.0.0 * @copyright (c) 2026 Bitrix24 * @license MIT * @see https://github.com/bitrix24/b24jssdk * @see https://bitrix24.github.io/b24jssdk/ */ 'use strict'; const abstractHttp = require('./abstract-http.cjs'); const b24 = require('../../types/b24.cjs'); const ajaxError = require('./ajax-error.cjs'); const v3 = require('../interaction/batch/v3.cjs'); const asArray = require('../interaction/batch/processing/v3/as-array.cjs'); const asObject = require('../interaction/batch/processing/v3/as-object.cjs'); var __defProp = Object.defineProperty; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); class HttpV3 extends abstractHttp.AbstractHttp { static { __name(this, "HttpV3"); } constructor(authActions, options, restrictionParams) { super(authActions, options, restrictionParams); this._version = b24.ApiVersion.v3; } // region batch //// async batch(calls, options) { const opts = { isHaltOnError: true, ...options }; const requestId = opts.requestId ?? this._requestIdGenerator.getRequestId(); this._logBatchStart(requestId, calls, opts); const interactionBatch = new v3.InteractionBatchV3({ requestId, parallelDefaultValue: !opts.isHaltOnError, restrictionManager: this._restrictionManager }); if (Array.isArray(calls)) { interactionBatch.setProcessingStrategy(new asArray.ProcessingAsArrayV3()); } else { interactionBatch.setProcessingStrategy(new asObject.ProcessingAsObjectV3()); } interactionBatch.addCommands(calls); if (interactionBatch.size > interactionBatch.maxSize) { throw new ajaxError.AjaxError({ code: "JSSDK_BATCH_TOO_LARGE", description: `Batch too large: ${interactionBatch.size} commands (max: ${interactionBatch.maxSize})`, status: 400, requestInfo: { method: "batch", params: { cmd: calls }, requestId }, originalError: null }); } if (interactionBatch.size === 0) { throw new ajaxError.AjaxError({ code: "JSSDK_BATCH_EMPTY", description: "Batch must contain at least one command", status: 400, requestInfo: { method: "batch", params: { cmd: calls }, requestId }, originalError: null }); } const responseBatch = await this.call( "batch", interactionBatch.getCommandsForCall(), requestId ); const response = await interactionBatch.prepareResponse(responseBatch); this._logBatchCompletion( requestId, response.getData()?.result?.size ?? 0, response.getErrorMessages().length ); return response; } // endregion //// } exports.HttpV3 = HttpV3; //# sourceMappingURL=v3.cjs.map