Skip to content

Commit

Permalink
Fix method callBatch()
Browse files Browse the repository at this point in the history
  • Loading branch information
andrey-tech committed Aug 6, 2023
1 parent b215dba commit 8d33ac4
Showing 1 changed file with 16 additions and 8 deletions.
24 changes: 16 additions & 8 deletions src/bx24-wrapper.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
* @link https://github.com/andrey-tech/bx24-wrapper-js
* @license MIT
*
* @version 1.5.0
* @version 1.5.1
*
* v1.0.0 (01.12.2019) Начальный релиз
* v1.1.0 (28.05.2020) Рефакторинг
Expand All @@ -18,7 +18,7 @@
* v1.4.1 (14.06.2020) Параметр throttle исправлен на 2
* v1.4.2 (14.02.2021) Рефакторинг
* v1.5.0 (11.03.2023) Добавлен параметр dataExtractor в методы класса, рефакторинг
*
* v1.5.1 (06.08.2023) Исправлено поведение метода callBatch() при возникновении ошибки, рефакторинг
*/

/* jshint esversion: 9 */
Expand Down Expand Up @@ -233,7 +233,7 @@ class BX24Wrapper {
* Вызывает BX24.callBatch() с максимальным числом команд не более 50 и возвращает объект промис.
*
* @param {array|object} calls Пакет запросов
* @param {boolean} haltOnError Прерывать исполнение пакета в при возникновении ошибки
* @param {boolean} haltOnError Прерывать исполнение пакета при возникновении ошибки
* @param {function} dataExtractor Функция для извлечения данных из результатов запроса
*
* @return {object} Promise
Expand All @@ -253,6 +253,10 @@ class BX24Wrapper {

for (let result of results) {
if (result.status != 200 || result.error()) {
if (!haltOnError && result.error()) {
continue;
}

return reject(`${result.error()} (callBatch ${result.query.method}: ${result.query.data})`);
}

Expand All @@ -265,7 +269,11 @@ class BX24Wrapper {
let result = results[ key ];

if (result.status != 200 || result.error()) {
return reject(`${result.error()} (callBatch ${result.query.method}: ${result.query.data})`);
if (!haltOnError && result.error()) {
continue;
}

return reject(`${result.error()} (callBatch ${result.query.method}: ${result.query.data})`);
}

data[ key ] = dataExtractor ? dataExtractor(result.data()) : result.data();
Expand All @@ -283,7 +291,7 @@ class BX24Wrapper {
* Вызывает BX24.callBatch() с произвольным числом запросов и возвращает объект промис.
*
* @param {array} calls Пакет запросов
* @param {boolean} haltOnError Прерывать исполнение пакета в при возникновении ошибки
* @param {boolean} haltOnError Прерывать исполнение пакета при возникновении ошибки
* @param {function} dataExtractor Функция для извлечения данных из результатов запроса
*
* @return {object} Promise
Expand All @@ -292,7 +300,7 @@ class BX24Wrapper {
*/
async callLongBatch(calls, haltOnError = true, dataExtractor = null) {
if (! Array.isArray(calls)) {
throw "Parameter 'calls' must be an array";
throw "Parameter 'calls' must be an array.";
}

let data = [],
Expand Down Expand Up @@ -324,7 +332,7 @@ class BX24Wrapper {
* Вызывает BX24.callBatch() с произвольным числом команд в запросе и возвращает объект генератор.
*
* @param {array} calls Пакет запросов
* @param {boolean} haltOnError Прерывать исполнение пакета в при возникновении ошибки
* @param {boolean} haltOnError Прерывать исполнение пакета при возникновении ошибки
* @param {function} dataExtractor Функция для извлечения данных из результатов запроса
*
* @return {object} Generator
Expand All @@ -333,7 +341,7 @@ class BX24Wrapper {
*/
async *callLargeBatch(calls, haltOnError = true, dataExtractor = null) {
if (! Array.isArray(calls)) {
throw "Parameter 'calls' must be an array";
throw "Parameter 'calls' must be an array.";
}

let total = calls.length,
Expand Down

0 comments on commit 8d33ac4

Please sign in to comment.