@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 6.9 kB
Source Map (JSON)
{"version":3,"file":"v2.mjs","sources":["../../../../src/core/http/v2.ts"],"sourcesContent":["import type {\n BatchCommandsArrayUniversal,\n BatchCommandsObjectUniversal,\n BatchNamedCommandsUniversal, ICallBatchOptions, ICallBatchResult,\n TypeHttp\n} from '../../types/http'\nimport type { AuthActions } from '../../types/auth'\nimport type { RestrictionParams } from '../../types/limiters'\nimport type { Result } from '../result'\nimport type { BatchPayload } from '../../types/payloads'\nimport { AbstractHttp } from './abstract-http'\nimport { ApiVersion } from '../../types/b24'\nimport { InteractionBatchV2 } from '../interaction/batch/v2'\nimport { ProcessingAsArrayV2 } from '../interaction/batch/processing/v2/as-array'\nimport { ProcessingAsObjectV2 } from '../interaction/batch/processing/v2/as-object'\nimport { AjaxError } from './ajax-error'\n\n/**\n * Class for working with RestApi v2 requests via http\n *\n * @link https://bitrix24.github.io/b24jssdk/\n *\n * @todo docs\n */\nexport class HttpV2 extends AbstractHttp implements TypeHttp {\n constructor(\n authActions: AuthActions,\n options?: null | object,\n restrictionParams?: Partial<RestrictionParams>\n ) {\n super(authActions, options, restrictionParams)\n this._version = ApiVersion.v2\n }\n\n // region batch ////\n public async batch<T = unknown>(\n calls: BatchCommandsArrayUniversal | BatchCommandsObjectUniversal | BatchNamedCommandsUniversal,\n options?: ICallBatchOptions\n ): Promise<Result<ICallBatchResult<T>>> {\n const opts = {\n isHaltOnError: true,\n ...options\n }\n\n const requestId = opts.requestId ?? this._requestIdGenerator.getRequestId()\n\n this._logBatchStart(requestId, calls, opts)\n\n const interactionBatch = new InteractionBatchV2({\n requestId,\n parallelDefaultValue: !(opts.isHaltOnError),\n restrictionManager: this._restrictionManager\n })\n\n if (Array.isArray(calls)) {\n interactionBatch.setProcessingStrategy(new ProcessingAsArrayV2())\n } else {\n interactionBatch.setProcessingStrategy(new ProcessingAsObjectV2())\n }\n\n interactionBatch.addCommands(calls)\n\n if (interactionBatch.size > interactionBatch.maxSize) {\n throw new AjaxError({\n code: 'JSSDK_BATCH_TOO_LARGE',\n description: `Batch too large: ${interactionBatch.size} commands (max: ${interactionBatch.maxSize})`,\n status: 400,\n requestInfo: { method: 'batch', params: { cmd: calls }, requestId },\n originalError: null\n })\n }\n\n if (interactionBatch.size === 0) {\n throw new AjaxError({\n code: 'JSSDK_BATCH_EMPTY',\n description: 'Batch must contain at least one command',\n status: 400,\n requestInfo: { method: 'batch', params: { cmd: calls }, requestId },\n originalError: null\n })\n }\n\n const responseBatch = await this.call<BatchPayload<T>>(\n 'batch',\n {\n halt: opts.isHaltOnError ? 1 : 0,\n cmd: interactionBatch.getCommandsForCall()\n },\n requestId\n )\n\n const response = await interactionBatch.prepareResponse<T>(responseBatch)\n\n // Log the results\n this._logBatchCompletion(\n requestId,\n response.getData()?.result?.size ?? 0,\n response.getErrorMessages().length\n )\n\n return response\n }\n // endregion ////\n\n // region Prepare ////\n /**\n * @inheritDoc\n */\n protected override _prepareMethod(requestId: string, method: string, baseUrl: string): string {\n const methodUrl = `/${encodeURIComponent(method)}`\n\n /**\n * @memo For task methods, skip telemetry\n * @see https://apidocs.bitrix24.com/settings/how-to-call-rest-api/data-encoding.html#order-of-parameters\n */\n if (method.includes('task.')) {\n return `${baseUrl}${methodUrl}`\n }\n\n const queryParams = new URLSearchParams({\n [this._requestIdGenerator.getQueryStringParameterName()]: requestId,\n [this._requestIdGenerator.getQueryStringSdkParameterName()]: '__SDK_VERSION__',\n [this._requestIdGenerator.getQueryStringSdkTypeParameterName()]: '__SDK_USER_AGENT__'\n })\n return `${baseUrl}${methodUrl}?${queryParams.toString()}`\n }\n // endregion ////\n}\n"],"names":[],"mappings":"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"}