UNPKG

@bitrix24/b24jssdk

Version:

Bitrix24 REST API JavaScript SDK

1 lines 9.43 kB
{"version":3,"file":"abstract-processing.mjs","sources":["../../../../../../../src/core/interaction/batch/processing/v2/abstract-processing.ts"],"sourcesContent":["import type { BatchCommandV3, ICallBatchResult } from '../../../../../types/http'\nimport type { IProcessingStrategy, ResponseHelper, ResultItems } from '../interface-strategy'\nimport type { BatchResponseData } from '../../abstract-interaction-batch'\nimport * as qs from 'qs-esm'\nimport { AbstractProcessing } from '../interface-strategy'\nimport { SdkError } from '../../../../sdk-error'\nimport { AjaxResult } from '../../../../http/ajax-result'\nimport { Result } from '../../../../result'\n\nexport abstract class AbstractProcessingV2 extends AbstractProcessing implements IProcessingStrategy {\n protected _buildRow(command: BatchCommandV3): string {\n return `${command.method}?${qs.stringify(command.query || {})}`\n }\n\n public buildCommands(commands: BatchCommandV3[]): string[] | Record<string, string> {\n if (commands.length < 1) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMANDS',\n description: 'commands not set',\n status: 500\n })\n }\n\n const firstCommand = commands[0]!\n const asObject = (typeof firstCommand.as === 'string' && firstCommand.as.length > 0)\n\n if (asObject) {\n const result: Record<string, string> = {}\n\n for (const command of commands) {\n result[command.as!] = this._buildRow(command)\n }\n return result\n }\n\n const result: string[] = []\n\n for (const command of commands) {\n result.push(this._buildRow(command))\n }\n return result\n }\n\n // region prepareItems ////\n public override async prepareItems<T>(\n commands: BatchCommandV3[],\n responseHelper: ResponseHelper<T>\n ): Promise<ResultItems<T>> {\n const results: ResultItems<T> = new Map()\n\n for (const [index, command] of commands.entries()) {\n await this._processResponseItem<T>(\n command,\n // @memo for apiVer2 in this pace we get objectIndex from `command.as` OR array `index` from `commands[]`\n command.as ?? index,\n responseHelper,\n results\n )\n }\n\n return results\n }\n\n protected override async _processResponseItem<T>(\n command: BatchCommandV3,\n index: string | number,\n responseHelper: ResponseHelper<T>,\n results: Map<string | number, AjaxResult<T>>\n ): Promise<void> {\n const responseResult = responseHelper.response.getData()!.result as BatchResponseData<T>\n const resultData = this._getBatchResultByIndex(responseResult.result, index)\n const resultError = this._getBatchResultByIndex(responseResult.result_error, index)\n\n if (\n typeof resultData !== 'undefined'\n || typeof resultError !== 'undefined'\n ) {\n const methodName = command.method\n\n // Update operating statistics for each method in the batch\n const resultTime = this._getBatchResultByIndex(responseResult.result_time, index)\n if (typeof resultTime !== 'undefined') {\n await responseHelper.restrictionManager.updateStats(responseHelper.requestId, `batch::${methodName}`, resultTime)\n }\n\n const result = new AjaxResult<T>({\n answer: {\n error: resultError ? (typeof resultError === 'string' ? resultError : resultError.error) : undefined,\n error_description: resultError ? (typeof resultError === 'string' ? undefined : resultError.error_description) : undefined,\n result: (resultData ?? {}) as T,\n total: Number.parseInt(this._getBatchResultByIndex(responseResult.result_total, index) || '0'),\n next: Number.parseInt(this._getBatchResultByIndex(responseResult.result_next, index) || '0'),\n time: resultTime!\n },\n query: {\n method: methodName,\n params: command.query || {},\n requestId: responseHelper.requestId\n },\n status: responseHelper.response.getStatus()\n })\n\n results.set(index, result)\n\n return\n }\n\n if (responseHelper.parallelDefaultValue) {\n throw new SdkError({\n code: 'JSSDK_INTERACTION_BATCH_STRATEGY_V2_EMPTY_COMMAND_RESPONSE',\n description: `There were difficulties parsing the response for batch { index: ${index}, method: ${command.method} }`,\n status: 500\n })\n }\n }\n // endregion ////\n\n // region handleResults ////\n public override async handleResults<T>(_commands: BatchCommandV3[], results: ResultItems<T>, responseHelper: ResponseHelper<T>): Promise<Result<ICallBatchResult<T>>> {\n const result = new Result<ICallBatchResult<T>>()\n const dataResult: ResultItems<T> = new Map()\n\n for (const [index, data] of results) {\n if (data.getStatus() !== 200 || !data.isSuccess) {\n const ajaxError = this._createErrorFromAjaxResult(data)\n\n /*\n * This should contain code similar to #isOperatingLimitError with a check for\n * the error 'Method is blocked due to operation time limit.'\n * However, `batch` is executed without retries, so there will be an immediate error.\n */\n\n // @todo fix docs\n // @memo we not throw ajaxError\n this._processResponseError<T>(result, ajaxError, `${index}`)\n dataResult.set(index, data)\n\n // if (responseHelper.parallelDefaultValue && !data.isSuccess) {\n // this._processResponseError<T>(result, ajaxError, `${index}`)\n // dataResult.set(index, data)\n // continue\n // }\n //\n // throw ajaxError\n }\n\n dataResult.set(index, data)\n }\n\n result.setData({\n result: dataResult,\n time: responseHelper.response.getData()!.time\n })\n\n return result\n }\n // endregion ////\n}\n"],"names":["result"],"mappings":"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"}