bx-rest 0.10.2 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1021,6 +1021,13 @@ const $pin = 'pin';
1021
1021
  const $end = 'end';
1022
1022
  const $idle = 'idle';
1023
1023
  const $crm = 'crm';
1024
+ const $duplicate = 'duplicate';
1025
+ const $entity = 'entity';
1026
+ const $findbycomm = 'findbycomm';
1027
+ const $mergeBatch = 'mergeBatch';
1028
+ const $volatileType = 'volatileType';
1029
+ const $register = 'register';
1030
+ const $unregister = 'unregister';
1024
1031
  const $automation = 'automation';
1025
1032
  const $automatedsolution = 'automatedsolution';
1026
1033
  const $trigger = 'trigger';
@@ -1080,10 +1087,12 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1080
1087
  $disk: $disk,
1081
1088
  $document: $document,
1082
1089
  $documentgenerator: $documentgenerator,
1090
+ $duplicate: $duplicate,
1083
1091
  $elapseditem: $elapseditem,
1084
1092
  $element: $element,
1085
1093
  $enablepublicurl: $enablepublicurl,
1086
1094
  $end: $end,
1095
+ $entity: $entity,
1087
1096
  $enum: $enum,
1088
1097
  $event: $event,
1089
1098
  $execute: $execute,
@@ -1092,6 +1101,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1092
1101
  $field: $field,
1093
1102
  $file: $file,
1094
1103
  $files: $files,
1104
+ $findbycomm: $findbycomm,
1095
1105
  $folder: $folder,
1096
1106
  $get: $get,
1097
1107
  $getFields: $getFields,
@@ -1117,6 +1127,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1117
1127
  $log: $log,
1118
1128
  $markdeleted: $markdeleted,
1119
1129
  $meeting: $meeting,
1130
+ $mergeBatch: $mergeBatch,
1120
1131
  $message: $message,
1121
1132
  $messages: $messages,
1122
1133
  $moveto: $moveto,
@@ -1134,6 +1145,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1134
1145
  $quote: $quote,
1135
1146
  $read: $read,
1136
1147
  $recent: $recent,
1148
+ $register: $register,
1137
1149
  $rename: $rename,
1138
1150
  $renew: $renew,
1139
1151
  $request: $request,
@@ -1164,6 +1176,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1164
1176
  $trigger: $trigger,
1165
1177
  $type: $type,
1166
1178
  $unread: $unread,
1179
+ $unregister: $unregister,
1167
1180
  $update: $update,
1168
1181
  $updateAvatar: $updateAvatar,
1169
1182
  $updateColor: $updateColor,
@@ -1174,6 +1187,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1174
1187
  $user: $user,
1175
1188
  $userfield: $userfield,
1176
1189
  $users: $users,
1190
+ $volatileType: $volatileType,
1177
1191
  $workflow: $workflow,
1178
1192
  $workgroup: $workgroup,
1179
1193
  $writing: $writing
@@ -6225,6 +6239,30 @@ class BXRestMapCrmCurrency {
6225
6239
  }
6226
6240
  }
6227
6241
 
6242
+ class BXRestMapCrmStatus {
6243
+ /** Преобразует список элементов справочника из формата Bitrix24 в локальный формат. */
6244
+ static list(value) {
6245
+ return value?.map(item => BXRestMapCrmStatus.get(item));
6246
+ }
6247
+ /** Преобразует элемент справочника из формата Bitrix24 в локальный формат. */
6248
+ static get(value) {
6249
+ if (!value)
6250
+ return undefined;
6251
+ return Object.assign(clone(value), {
6252
+ ID: toNum(value.ID),
6253
+ SORT: toNum(value.SORT),
6254
+ SYSTEM: toBool(value.SYSTEM),
6255
+ CATEGORY_ID: value.CATEGORY_ID === null ? null : toNum(value.CATEGORY_ID)
6256
+ });
6257
+ }
6258
+ /** Нормализует идентификаторы воронок в описаниях типов справочников. */
6259
+ static entityTypes(value) {
6260
+ return value?.map(item => Object.assign(clone(item), {
6261
+ CATEGORY_ID: item.CATEGORY_ID === undefined ? undefined : toNum(item.CATEGORY_ID)
6262
+ }));
6263
+ }
6264
+ }
6265
+
6228
6266
  class BXRestNavvyCrmLead {
6229
6267
  constructor() {
6230
6268
  this.url = {
@@ -7301,8 +7339,208 @@ class BXRestNavvyCrmCurrency {
7301
7339
  }
7302
7340
  }
7303
7341
 
7342
+ /** Навигатор методов описания типов справочников CRM (`crm.status.entity.*`). */
7343
+ class BXRestNavvyCrmStatusEntity {
7344
+ constructor() {
7345
+ this.Navvy = new Navvy();
7346
+ this.url = {
7347
+ items: [$crm, $status, 'entity', 'items'],
7348
+ types: [$crm, $status, 'entity', 'types']
7349
+ };
7350
+ }
7351
+ /**
7352
+ * Возвращает все элементы указанного справочника с сортировкой по полю `SORT`.
7353
+ *
7354
+ * @param param Символьный идентификатор справочника в поле `entityId`.
7355
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-entity-items.html
7356
+ */
7357
+ items(param) {
7358
+ return this.Navvy.simple(this.url.items, param);
7359
+ }
7360
+ /**
7361
+ * Возвращает все поддерживаемые типы справочников и их символьные идентификаторы.
7362
+ * Для справочников стадий ответ также содержит сведения о воронке и семантике.
7363
+ *
7364
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-entity-types.html
7365
+ */
7366
+ types() {
7367
+ return this.Navvy.simple(this.url.types, undefined, BXRestMapCrmStatus.entityTypes);
7368
+ }
7369
+ }
7370
+
7371
+ /** Навигатор REST-методов справочников CRM (`crm.status.*`). */
7372
+ class BXRestNavvyCrmStatus {
7373
+ constructor() {
7374
+ this.Navvy = new Navvy();
7375
+ this.url = {
7376
+ add: [$crm, $status, $add],
7377
+ update: [$crm, $status, $update],
7378
+ get: [$crm, $status, $get],
7379
+ list: [$crm, $status, $list],
7380
+ delete: [$crm, $status, $delete],
7381
+ fields: [$crm, $status, 'fields']
7382
+ };
7383
+ /** Типы справочников и получение их элементов (`crm.status.entity.*`). */
7384
+ this.entity = new BXRestNavvyCrmStatusEntity();
7385
+ }
7386
+ /**
7387
+ * Создает новый элемент в указанном справочнике CRM.
7388
+ * Для стадий пользовательских воронок Bitrix24 автоматически добавляет к `STATUS_ID` префикс воронки.
7389
+ *
7390
+ * @param param Тип справочника и поля нового элемента.
7391
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-add.html
7392
+ */
7393
+ add(param) {
7394
+ return this.Navvy.simple(this.url.add, param);
7395
+ }
7396
+ /**
7397
+ * Обновляет название, сортировку или цвет существующего элемента справочника.
7398
+ *
7399
+ * @param param Идентификатор элемента и изменяемые поля.
7400
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-update.html
7401
+ */
7402
+ update(param) {
7403
+ return this.Navvy.simple(this.url.update, param);
7404
+ }
7405
+ /**
7406
+ * Возвращает элемент справочника по числовому идентификатору.
7407
+ *
7408
+ * @param param Идентификатор элемента справочника.
7409
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-get.html
7410
+ */
7411
+ get(param) {
7412
+ return this.Navvy.simple(this.url.get, param, BXRestMapCrmStatus.get);
7413
+ }
7414
+ /**
7415
+ * Возвращает список элементов справочников по фильтру с заданной сортировкой.
7416
+ * Навигатор поддерживает получение всех страниц результата через `resAll()`.
7417
+ *
7418
+ * @param param Фильтр, сортировка и начальная позиция страницы.
7419
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-list.html
7420
+ */
7421
+ list(param = {}) {
7422
+ return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmStatus.list);
7423
+ }
7424
+ /**
7425
+ * Удаляет элемент справочника.
7426
+ * Для системного элемента передайте `params.FORCED: 'Y'`.
7427
+ *
7428
+ * @param param Идентификатор элемента и необязательный флаг принудительного удаления.
7429
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-delete.html
7430
+ */
7431
+ delete(param) {
7432
+ return this.Navvy.simple(this.url.delete, param);
7433
+ }
7434
+ /**
7435
+ * Возвращает описание полей элементов справочников CRM.
7436
+ *
7437
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/status/crm-status-fields.html
7438
+ */
7439
+ fields() {
7440
+ return this.Navvy.simple(this.url.fields);
7441
+ }
7442
+ }
7443
+
7444
+ /** Настройка дополнительных полей поиска дубликатов (`crm.duplicate.volatileType.*`). */
7445
+ class BXRestNavvyCrmDuplicateVolatileType {
7446
+ constructor() {
7447
+ this.Navvy = new Navvy();
7448
+ this.url = {
7449
+ fields: [$crm, $duplicate, $volatileType, 'fields'],
7450
+ list: [$crm, $duplicate, $volatileType, $list],
7451
+ register: [$crm, $duplicate, $volatileType, $register],
7452
+ unregister: [$crm, $duplicate, $volatileType, $unregister]
7453
+ };
7454
+ }
7455
+ /**
7456
+ * Возвращает стандартные и пользовательские поля, доступные для поиска дубликатов.
7457
+ *
7458
+ * @param param Необязательный тип CRM-объекта: `1` — лид, `3` — контакт, `4` — компания.
7459
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/volatile-type/crm-duplicate-volatile-type-fields.html
7460
+ */
7461
+ fields(param = {}) {
7462
+ return this.Navvy.simple(this.url.fields, param);
7463
+ }
7464
+ /**
7465
+ * Возвращает нестандартные поля, уже участвующие в поиске дубликатов.
7466
+ *
7467
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/volatile-type/crm-duplicate-volatile-type-list.html
7468
+ */
7469
+ list() {
7470
+ return this.Navvy.simple(this.url.list);
7471
+ }
7472
+ /**
7473
+ * Добавляет стандартное или пользовательское поле в поиск дубликатов.
7474
+ * Суммарно для лидов, контактов и компаний можно зарегистрировать до семи полей.
7475
+ *
7476
+ * @param param Тип CRM-объекта и код поля из результата метода `fields`.
7477
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/volatile-type/crm-duplicate-volatile-type-register.html
7478
+ */
7479
+ register(param) {
7480
+ return this.Navvy.simple(this.url.register, param);
7481
+ }
7482
+ /**
7483
+ * Удаляет нестандартное поле из поиска дубликатов.
7484
+ *
7485
+ * @param param Идентификатор записи из результата метода `list` или `register`.
7486
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/volatile-type/crm-duplicate-volatile-type-unregister.html
7487
+ */
7488
+ unregister(param) {
7489
+ return this.Navvy.simple(this.url.unregister, param);
7490
+ }
7491
+ }
7492
+
7493
+ /** Поиск дубликатов и настройка полей поиска (`crm.duplicate.*`). */
7494
+ class BXRestNavvyCrmDuplicate {
7495
+ constructor() {
7496
+ this.Navvy = new Navvy();
7497
+ this.url = {
7498
+ findByComm: [$crm, $duplicate, $findbycomm]
7499
+ };
7500
+ /** Дополнительные поля поиска дубликатов (`crm.duplicate.volatileType.*`). */
7501
+ this.volatileType = new BXRestNavvyCrmDuplicateVolatileType();
7502
+ }
7503
+ /**
7504
+ * Возвращает идентификаторы лидов, контактов и компаний с совпадающими телефонами или email.
7505
+ * Добавочный номер телефона при поиске не учитывается; за один вызов можно передать до 20 значений.
7506
+ *
7507
+ * @param param Тип коммуникации, искомые значения и необязательное ограничение типа CRM-объекта.
7508
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/crm-duplicate-find-by-comm.html
7509
+ */
7510
+ findByComm(param) {
7511
+ return this.Navvy.simple(this.url.findByComm, param);
7512
+ }
7513
+ }
7514
+
7515
+ /** Операции над универсальными CRM-объектами (`crm.entity.*`). */
7516
+ class BXRestNavvyCrmEntity {
7517
+ constructor() {
7518
+ this.Navvy = new Navvy();
7519
+ this.url = {
7520
+ mergeBatch: [$crm, $entity, $mergeBatch]
7521
+ };
7522
+ }
7523
+ /**
7524
+ * Объединяет несколько CRM-объектов одного типа.
7525
+ * Первый идентификатор определяет главный объект; остальные объекты удаляются после успеха.
7526
+ * При статусе `CONFLICT` конфликтующие значения необходимо объединить вручную в интерфейсе Bitrix24.
7527
+ *
7528
+ * @param param Тип объекта и идентификаторы как минимум двух объединяемых элементов.
7529
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/duplicates/crm-entity-merge-batch.html
7530
+ */
7531
+ mergeBatch(param) {
7532
+ return this.Navvy.simple(this.url.mergeBatch, param);
7533
+ }
7534
+ }
7535
+
7304
7536
  class BXRestNavvyCrm {
7305
7537
  constructor() {
7538
+ /** Поиск дубликатов и настройка его полей (`crm.duplicate.*`). */
7539
+ this.duplicate = new BXRestNavvyCrmDuplicate();
7540
+ /** Операции над универсальными CRM-объектами (`crm.entity.*`). */
7541
+ this.entity = new BXRestNavvyCrmEntity();
7542
+ /** Справочники CRM (`crm.status.*`). */
7543
+ this.status = new BXRestNavvyCrmStatus();
7306
7544
  /** Валюты CRM (`crm.currency.*`). */
7307
7545
  this.currency = new BXRestNavvyCrmCurrency();
7308
7546
  /** Генератор документов CRM (`crm.documentgenerator.*`). */