bx-rest 0.10.0 → 0.10.2

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.
Files changed (34) hide show
  1. package/consts/part-name-methods.d.ts +6 -0
  2. package/esm2022/consts/part-name-methods.mjs +7 -1
  3. package/esm2022/functions/serializeBitrixParams.mjs +2 -3
  4. package/esm2022/map/crm/currency.mjs +36 -0
  5. package/esm2022/map/crm/index.mjs +2 -1
  6. package/esm2022/request-navvy/crm/currency/base.mjs +31 -0
  7. package/esm2022/request-navvy/crm/currency.mjs +75 -0
  8. package/esm2022/request-navvy/crm/documentgenerator/document.mjs +103 -0
  9. package/esm2022/request-navvy/crm/documentgenerator/index.mjs +18 -0
  10. package/esm2022/request-navvy/crm/documentgenerator/numerator.mjs +61 -0
  11. package/esm2022/request-navvy/crm/documentgenerator/template.mjs +76 -0
  12. package/esm2022/request-navvy/crm.mjs +7 -1
  13. package/esm2022/services/navvy/navvy-pag-nav-result-key-object.mjs +60 -0
  14. package/esm2022/services/navvy.mjs +6 -1
  15. package/esm2022/typification/rest/crm/currency.mjs +2 -0
  16. package/esm2022/typification/rest/crm/documentgenerator.mjs +2 -0
  17. package/esm2022/typification/rest/crm/index.mjs +3 -1
  18. package/fesm2022/bx-rest.mjs +453 -3
  19. package/fesm2022/bx-rest.mjs.map +1 -1
  20. package/map/crm/currency.d.ts +8 -0
  21. package/map/crm/index.d.ts +1 -0
  22. package/package.json +2 -2
  23. package/request-navvy/crm/currency/base.d.ts +20 -0
  24. package/request-navvy/crm/currency.d.ts +51 -0
  25. package/request-navvy/crm/documentgenerator/document.d.ts +92 -0
  26. package/request-navvy/crm/documentgenerator/index.d.ts +15 -0
  27. package/request-navvy/crm/documentgenerator/numerator.d.ts +51 -0
  28. package/request-navvy/crm/documentgenerator/template.d.ts +65 -0
  29. package/request-navvy/crm.d.ts +6 -0
  30. package/services/navvy/navvy-pag-nav-result-key-object.d.ts +12 -0
  31. package/services/navvy.d.ts +3 -0
  32. package/typification/rest/crm/currency.d.ts +146 -0
  33. package/typification/rest/crm/documentgenerator.d.ts +200 -0
  34. package/typification/rest/crm/index.d.ts +2 -0
@@ -1,6 +1,6 @@
1
1
  import { DateTime } from 'luxon';
2
2
  import { switchMap, map, catchError, take, mergeMap as mergeMap$1 } from 'rxjs/operators';
3
- import { Subscription, of, throwError, from, forkJoin, last, shareReplay, mergeMap, concatMap, toArray, tap } from 'rxjs';
3
+ import { Subscription, of, throwError, from, forkJoin, last, shareReplay, mergeMap, concatMap, toArray, map as map$1, tap } from 'rxjs';
4
4
  import clone from 'just-clone';
5
5
  import axios from 'axios';
6
6
  import flatten from 'just-flatten-it';
@@ -710,8 +710,7 @@ class HttpServices extends BaseHttp {
710
710
  const BITRIX_STRINGIFY_OPTIONS = {
711
711
  // Добавляет числовые индексы массивов: fields[PHONE][0][VALUE].
712
712
  arrayFormat: 'indices',
713
- // Использует bracket notation для вложенных объектов: filter[ID], а не filter.ID.
714
- allowDots: false,
713
+ // allowDots не передаётся: значение по умолчанию false сохраняет bracket notation.
715
714
  // Выполняет URL-кодирование ключей и значений параметров.
716
715
  encode: true,
717
716
  // Кодирует не только значения, но и ключи вместе с квадратными скобками.
@@ -1033,7 +1032,13 @@ const $deal = 'deal';
1033
1032
  const $contact = 'contact';
1034
1033
  const $company = 'company';
1035
1034
  const $quote = 'quote';
1035
+ const $currency = 'currency';
1036
1036
  const $productrows = 'productrows';
1037
+ const $documentgenerator = 'documentgenerator';
1038
+ const $numerator = 'numerator';
1039
+ const $document = 'document';
1040
+ const $enablepublicurl = 'enablepublicurl';
1041
+ const $upload = 'upload';
1037
1042
 
1038
1043
  var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1039
1044
  __proto__: null,
@@ -1064,6 +1069,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1064
1069
  $counters: $counters,
1065
1070
  $create: $create,
1066
1071
  $crm: $crm,
1072
+ $currency: $currency,
1067
1073
  $deal: $deal,
1068
1074
  $defer: $defer,
1069
1075
  $delegate: $delegate,
@@ -1072,8 +1078,11 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1072
1078
  $dialog: $dialog,
1073
1079
  $disapprove: $disapprove,
1074
1080
  $disk: $disk,
1081
+ $document: $document,
1082
+ $documentgenerator: $documentgenerator,
1075
1083
  $elapseditem: $elapseditem,
1076
1084
  $element: $element,
1085
+ $enablepublicurl: $enablepublicurl,
1077
1086
  $end: $end,
1078
1087
  $enum: $enum,
1079
1088
  $event: $event,
@@ -1114,6 +1123,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1114
1123
  $multifield: $multifield,
1115
1124
  $mute: $mute,
1116
1125
  $nearest: $nearest,
1126
+ $numerator: $numerator,
1117
1127
  $params: $params,
1118
1128
  $pause: $pause,
1119
1129
  $pin: $pin,
@@ -1158,6 +1168,7 @@ var partNameMethods$1 = /*#__PURE__*/Object.freeze({
1158
1168
  $updateAvatar: $updateAvatar,
1159
1169
  $updateColor: $updateColor,
1160
1170
  $updateTitle: $updateTitle,
1171
+ $upload: $upload,
1161
1172
  $uploadfile: $uploadfile,
1162
1173
  $url: $url,
1163
1174
  $user: $user,
@@ -2361,6 +2372,59 @@ class NavvyPagNavResultKey extends NavvyPagBase {
2361
2372
  }
2362
2373
  }
2363
2374
 
2375
+ /** Пагинация для методов, возвращающих коллекцию как объект с идентификаторами в ключах. */
2376
+ class NavvyPagNavResultKeyObject extends NavvyPagBase {
2377
+ constructor(url, param, key, mapResult) {
2378
+ super(url, param, mapResult);
2379
+ this.key = key;
2380
+ }
2381
+ resAll() {
2382
+ return this.resultAllEnd().pipe(last(), shareReplay(1));
2383
+ }
2384
+ resultAllEnd() {
2385
+ const bxRest = new BXRest();
2386
+ return this.resVanilla().pipe(mergeMap(items => {
2387
+ if (!items || !instanceOfiBXRestAnswerSuccess(items)) {
2388
+ return from([]);
2389
+ }
2390
+ if (!items.total || items.total <= this.pageSize) {
2391
+ return this.mapResult(items);
2392
+ }
2393
+ const pageCount = Math.ceil(items.total / this.pageSize);
2394
+ const commands = Array.from({ length: pageCount - 1 }, (_, index) => {
2395
+ const param = clone(this.param);
2396
+ param.start = (index + 1) * this.pageSize;
2397
+ return bxRest.batch({
2398
+ halt: 1,
2399
+ cmd: [this.http.getNameMethod(this.url) + '?' + serializeBitrixParams(param)]
2400
+ });
2401
+ });
2402
+ return from(commands).pipe(concatMap(request => request), toArray(), mergeMap(results => {
2403
+ const merged = { ...(items.result?.[this.key] ?? {}) };
2404
+ for (const result of results) {
2405
+ if (result && instanceOfiBXRestAnswerSuccess(result)) {
2406
+ for (const page of result.result?.result ?? []) {
2407
+ Object.assign(merged, page?.[this.key] ?? {});
2408
+ }
2409
+ }
2410
+ }
2411
+ return this.mapResult({ [this.key]: merged });
2412
+ }));
2413
+ }), catchError(error => {
2414
+ console.error(error);
2415
+ return throwError(() => error);
2416
+ }));
2417
+ }
2418
+ mapResult(items) {
2419
+ if (!instanceOfiBXRestAnswerSuccess(items)) {
2420
+ return from([]);
2421
+ }
2422
+ return from([items.result]).pipe(map$1(value => this.map
2423
+ ? this.map(value)
2424
+ : Object.values(value?.[this.key] ?? {})));
2425
+ }
2426
+ }
2427
+
2364
2428
  class NavvySupport {
2365
2429
  constructor(requestClass) {
2366
2430
  this.requestClass = requestClass;
@@ -2410,6 +2474,9 @@ class Navvy {
2410
2474
  pagNavResultKey(url, arg, key, map) {
2411
2475
  return new NavvyPagNavResultKey(url, arg, key, map);
2412
2476
  }
2477
+ pagNavResultKeyObject(url, arg, key, map) {
2478
+ return new NavvyPagNavResultKeyObject(url, arg, key, map);
2479
+ }
2413
2480
  pagNavWithUselessKey(url,
2414
2481
  // func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,
2415
2482
  arg, map) {
@@ -6124,6 +6191,40 @@ class BXRestMapCrmAutomatedSolution {
6124
6191
  }
6125
6192
  }
6126
6193
 
6194
+ class BXRestMapCrmCurrency {
6195
+ /** Преобразует список валют из формата Bitrix24 в локальный формат библиотеки. */
6196
+ static list(value) {
6197
+ return value?.map(item => BXRestMapCrmCurrency.get(item));
6198
+ }
6199
+ /** Преобразует валюту из формата Bitrix24 в локальный формат библиотеки. */
6200
+ static get(value) {
6201
+ if (!value)
6202
+ return undefined;
6203
+ return Object.assign(clone(value), {
6204
+ AMOUNT_CNT: toNum(value.AMOUNT_CNT),
6205
+ AMOUNT: toNum(value.AMOUNT),
6206
+ SORT: toNum(value.SORT),
6207
+ BASE: toBool(value.BASE),
6208
+ DECIMALS: toNum(value.DECIMALS),
6209
+ DATE_UPDATE: toDate(value.DATE_UPDATE),
6210
+ LANG: BXRestMapCrmCurrency.localizations(value.LANG)
6211
+ });
6212
+ }
6213
+ static localizations(value) {
6214
+ if (!value)
6215
+ return undefined;
6216
+ return Object.fromEntries(Object.entries(value).map(([language, localization]) => [
6217
+ language,
6218
+ Object.assign(clone(localization), {
6219
+ DECIMALS: toNum(localization.DECIMALS),
6220
+ HIDE_ZERO: localization.HIDE_ZERO === undefined
6221
+ ? undefined
6222
+ : toBool(localization.HIDE_ZERO)
6223
+ })
6224
+ ]));
6225
+ }
6226
+ }
6227
+
6127
6228
  class BXRestNavvyCrmLead {
6128
6229
  constructor() {
6129
6230
  this.url = {
@@ -6855,8 +6956,357 @@ class BXRestNavvyCrmAutomatedSolution {
6855
6956
  }
6856
6957
  }
6857
6958
 
6959
+ /** Методы документов генератора документов (`crm.documentgenerator.document.*`). */
6960
+ class BXRestNavvyCrmDocumentGeneratorDocument {
6961
+ constructor() {
6962
+ this.Navvy = new Navvy();
6963
+ this.url = {
6964
+ /** Создаёт документ по шаблону. */
6965
+ add: [$crm, $documentgenerator, $document, $add],
6966
+ /** Обновляет существующий документ. */
6967
+ update: [$crm, $documentgenerator, $document, $update],
6968
+ /** Возвращает документ по идентификатору. */
6969
+ get: [$crm, $documentgenerator, $document, $get],
6970
+ /** Возвращает список документов. */
6971
+ list: [$crm, $documentgenerator, $document, $list],
6972
+ /** Удаляет документ. */
6973
+ delete: [$crm, $documentgenerator, $document, $delete],
6974
+ /** Включает или выключает публичную ссылку на документ. */
6975
+ enablePublicUrl: [$crm, $documentgenerator, $document, $enablepublicurl],
6976
+ /** Загружает готовый документ и прикрепляет его к CRM-объекту. */
6977
+ upload: [$crm, $documentgenerator, $document, $upload],
6978
+ /** Возвращает доступные поля созданного документа. */
6979
+ getFields: [$crm, $documentgenerator, $document, $getFields]
6980
+ };
6981
+ }
6982
+ /**
6983
+ * Создаёт документ по шаблону для указанного CRM-объекта.
6984
+ *
6985
+ * `pdfUrl` и `imageUrl` могут появиться позднее, поскольку конвертация выполняется асинхронно.
6986
+ *
6987
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-add.html
6988
+ */
6989
+ add(param) {
6990
+ return this.documentRequest(this.url.add, param);
6991
+ }
6992
+ /**
6993
+ * Обновляет значения существующего документа и запускает его повторную генерацию.
6994
+ *
6995
+ * `pdfUrl` и `imageUrl` могут появиться позднее, поскольку конвертация выполняется асинхронно.
6996
+ *
6997
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-update.html
6998
+ */
6999
+ update(param) {
7000
+ return this.documentRequest(this.url.update, param);
7001
+ }
7002
+ /**
7003
+ * Возвращает документ по идентификатору.
7004
+ *
7005
+ * Если конвертация ещё не завершилась, повторите запрос через 30–40 секунд.
7006
+ *
7007
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-get.html
7008
+ */
7009
+ get(param) {
7010
+ return this.documentRequest(this.url.get, param);
7011
+ }
7012
+ /**
7013
+ * Возвращает список документов по фильтру с поддержкой постраничной навигации.
7014
+ *
7015
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-list.html
7016
+ */
7017
+ list(param = {}) {
7018
+ return this.Navvy.pagNavResultKey(this.url.list, param, 'documents', (result) => result?.documents);
7019
+ }
7020
+ /**
7021
+ * Удаляет документ.
7022
+ *
7023
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-delete.html
7024
+ */
7025
+ delete(param) {
7026
+ return this.Navvy.simple(this.url.delete, param);
7027
+ }
7028
+ /**
7029
+ * Включает или выключает публичную ссылку на документ.
7030
+ * Если `status` не передан, ссылка включается.
7031
+ *
7032
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-enable-public-url.html
7033
+ */
7034
+ enablePublicUrl(param) {
7035
+ return this.Navvy.simple(this.url.enablePublicUrl, param);
7036
+ }
7037
+ /**
7038
+ * Загружает готовый DOCX-документ и прикрепляет его к CRM-объекту.
7039
+ * Дополнительно можно передать готовые PDF и изображение в Base64.
7040
+ *
7041
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-upload.html
7042
+ */
7043
+ upload(param) {
7044
+ return this.documentRequest(this.url.upload, param);
7045
+ }
7046
+ /**
7047
+ * Возвращает карточку полей созданного документа.
7048
+ * Переданные `values` используются только для вычисления ответа и не изменяют документ.
7049
+ *
7050
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/documents/crm-document-generator-document-get-fields.html
7051
+ */
7052
+ getFields(param) {
7053
+ return this.Navvy.simple(this.url.getFields, param, result => result?.documentFields);
7054
+ }
7055
+ documentRequest(url, param) {
7056
+ return this.Navvy.simple(url, param, result => result?.document);
7057
+ }
7058
+ }
7059
+
7060
+ /** Методы нумераторов генератора документов (`crm.documentgenerator.numerator.*`). */
7061
+ class BXRestNavvyCrmDocumentGeneratorNumerator {
7062
+ constructor() {
7063
+ this.Navvy = new Navvy();
7064
+ this.url = {
7065
+ /** Добавляет новый нумератор. */
7066
+ add: [$crm, $documentgenerator, $numerator, $add],
7067
+ /** Обновляет существующий нумератор. */
7068
+ update: [$crm, $documentgenerator, $numerator, $update],
7069
+ /** Возвращает нумератор по идентификатору. */
7070
+ get: [$crm, $documentgenerator, $numerator, $get],
7071
+ /** Возвращает список нумераторов. */
7072
+ list: [$crm, $documentgenerator, $numerator, $list],
7073
+ /** Удаляет созданный через REST нумератор. */
7074
+ delete: [$crm, $documentgenerator, $numerator, $delete]
7075
+ };
7076
+ }
7077
+ /**
7078
+ * Добавляет новый нумератор.
7079
+ *
7080
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/numerator/crm-document-generator-numerator-add.html
7081
+ */
7082
+ add(param) {
7083
+ return this.Navvy.simple(this.url.add, param, result => result?.numerator);
7084
+ }
7085
+ /**
7086
+ * Обновляет существующий нумератор и возвращает его актуальные данные.
7087
+ *
7088
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/numerator/crm-document-generator-numerator-update.html
7089
+ */
7090
+ update(param) {
7091
+ return this.Navvy.simple(this.url.update, param);
7092
+ }
7093
+ /**
7094
+ * Возвращает информацию о нумераторе по идентификатору.
7095
+ *
7096
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/numerator/crm-document-generator-numerator-get.html
7097
+ */
7098
+ get(param) {
7099
+ return this.Navvy.simple(this.url.get, param, result => result?.numerator);
7100
+ }
7101
+ /**
7102
+ * Возвращает список нумераторов с поддержкой постраничной навигации.
7103
+ *
7104
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/numerator/crm-document-generator-numerator-list.html
7105
+ */
7106
+ list(param = {}) {
7107
+ return this.Navvy.pagNavResultKey(this.url.list, param, 'numerators', (result) => result?.numerators);
7108
+ }
7109
+ /**
7110
+ * Удаляет нумератор. Удалить можно только нумератор, созданный через REST.
7111
+ *
7112
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/numerator/crm-document-generator-numerator-delete.html
7113
+ */
7114
+ delete(param) {
7115
+ return this.Navvy.simple(this.url.delete, param);
7116
+ }
7117
+ }
7118
+
7119
+ /** Методы шаблонов генератора документов (`crm.documentgenerator.template.*`). */
7120
+ class BXRestNavvyCrmDocumentGeneratorTemplate {
7121
+ constructor() {
7122
+ this.Navvy = new Navvy();
7123
+ this.url = {
7124
+ /** Добавляет новый шаблон документа. */
7125
+ add: [$crm, $documentgenerator, $template, $add],
7126
+ /** Обновляет существующий шаблон документа. */
7127
+ update: [$crm, $documentgenerator, $template, $update],
7128
+ /** Возвращает шаблон документа по идентификатору. */
7129
+ get: [$crm, $documentgenerator, $template, $get],
7130
+ /** Возвращает список шаблонов документов. */
7131
+ list: [$crm, $documentgenerator, $template, $list],
7132
+ /** Удаляет шаблон документа. */
7133
+ delete: [$crm, $documentgenerator, $template, $delete],
7134
+ /** Возвращает доступные поля шаблона для CRM-объекта. */
7135
+ getFields: [$crm, $documentgenerator, $template, $getFields]
7136
+ };
7137
+ }
7138
+ /**
7139
+ * Добавляет новый шаблон документа из файла DOCX.
7140
+ *
7141
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-add.html
7142
+ */
7143
+ add(param) {
7144
+ return this.Navvy.simple(this.url.add, param, result => result?.template);
7145
+ }
7146
+ /**
7147
+ * Обновляет существующий шаблон документа.
7148
+ *
7149
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-update.html
7150
+ */
7151
+ update(param) {
7152
+ return this.Navvy.simple(this.url.update, param, result => result?.template);
7153
+ }
7154
+ /**
7155
+ * Возвращает информацию о шаблоне документа по идентификатору.
7156
+ *
7157
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-get.html
7158
+ */
7159
+ get(param) {
7160
+ return this.Navvy.simple(this.url.get, param, result => result?.template);
7161
+ }
7162
+ /**
7163
+ * Возвращает список шаблонов с поддержкой постраничной навигации.
7164
+ *
7165
+ * В ответе Битрикс24 шаблоны индексированы идентификаторами; навигатор преобразует их в массив.
7166
+ *
7167
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-list.html
7168
+ */
7169
+ list(param = {}) {
7170
+ return this.Navvy.pagNavResultKeyObject(this.url.list, param, 'templates', (result) => result?.templates
7171
+ ? Object.values(result.templates)
7172
+ : undefined);
7173
+ }
7174
+ /**
7175
+ * Удаляет шаблон документа.
7176
+ *
7177
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-delete.html
7178
+ */
7179
+ delete(param) {
7180
+ return this.Navvy.simple(this.url.delete, param);
7181
+ }
7182
+ /**
7183
+ * Возвращает карточку полей шаблона для указанного типа и элемента CRM.
7184
+ * Переданные `values` применяются временно и не изменяют данные CRM.
7185
+ *
7186
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/document-generator/templates/crm-document-generator-template-get-fields.html
7187
+ */
7188
+ getFields(param) {
7189
+ return this.Navvy.simple(this.url.getFields, param, result => result?.templateFields);
7190
+ }
7191
+ }
7192
+
7193
+ /** Методы генератора документов CRM (`crm.documentgenerator.*`). */
7194
+ class BXRestNavvyCrmDocumentGenerator {
7195
+ constructor() {
7196
+ /** Нумераторы задают шаблон номера и параметры счётчика документов. */
7197
+ this.numerator = new BXRestNavvyCrmDocumentGeneratorNumerator();
7198
+ /** Шаблоны DOCX, привязанные к нумераторам и типам CRM-объектов. */
7199
+ this.template = new BXRestNavvyCrmDocumentGeneratorTemplate();
7200
+ /** Создание, загрузка и управление документами CRM. */
7201
+ this.document = new BXRestNavvyCrmDocumentGeneratorDocument();
7202
+ }
7203
+ }
7204
+
7205
+ /** Методы управления базовой валютой (`crm.currency.base.*`). */
7206
+ class BXRestNavvyCrmCurrencyBase {
7207
+ constructor() {
7208
+ this.Navvy = new Navvy();
7209
+ this.url = {
7210
+ get: [$crm, $currency, 'base', $get],
7211
+ set: [$crm, $currency, 'base', $set]
7212
+ };
7213
+ }
7214
+ /**
7215
+ * Возвращает символьный идентификатор базовой валюты.
7216
+ *
7217
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-base-get.html
7218
+ */
7219
+ get() {
7220
+ return this.Navvy.simple(this.url.get);
7221
+ }
7222
+ /**
7223
+ * Устанавливает указанную валюту в качестве базовой.
7224
+ * После смены базовой валюты курсы остальных валют необходимо обновить вручную.
7225
+ *
7226
+ * @param param Символьный идентификатор новой базовой валюты.
7227
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-base-set.html
7228
+ */
7229
+ set(param) {
7230
+ return this.Navvy.simple(this.url.set, param);
7231
+ }
7232
+ }
7233
+
7234
+ /** Навигатор REST-методов валют CRM (`crm.currency.*`). */
7235
+ class BXRestNavvyCrmCurrency {
7236
+ constructor() {
7237
+ this.Navvy = new Navvy();
7238
+ this.url = {
7239
+ add: [$crm, $currency, $add],
7240
+ update: [$crm, $currency, $update],
7241
+ get: [$crm, $currency, $get],
7242
+ list: [$crm, $currency, $list],
7243
+ delete: [$crm, $currency, $delete],
7244
+ fields: [$crm, $currency, 'fields']
7245
+ };
7246
+ /** Базовая валюта (`crm.currency.base.*`). */
7247
+ this.base = new BXRestNavvyCrmCurrencyBase();
7248
+ }
7249
+ /**
7250
+ * Создает новую валюту.
7251
+ *
7252
+ * @param param Поля новой валюты, включая код ISO 4217, номинал и курс.
7253
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-add.html
7254
+ */
7255
+ add(param) {
7256
+ return this.Navvy.simple(this.url.add, param);
7257
+ }
7258
+ /**
7259
+ * Обновляет существующую валюту.
7260
+ *
7261
+ * @param param Идентификатор валюты и изменяемые поля.
7262
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-update.html
7263
+ */
7264
+ update(param) {
7265
+ return this.Navvy.simple(this.url.update, param);
7266
+ }
7267
+ /**
7268
+ * Возвращает валюту по символьному идентификатору.
7269
+ *
7270
+ * @param param Символьный идентификатор валюты по ISO 4217.
7271
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-get.html
7272
+ */
7273
+ get(param) {
7274
+ return this.Navvy.simple(this.url.get, param, BXRestMapCrmCurrency.get);
7275
+ }
7276
+ /**
7277
+ * Возвращает список валют с локализацией для текущего языка портала.
7278
+ *
7279
+ * @param param Необязательный порядок сортировки.
7280
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-list.html
7281
+ */
7282
+ list(param = {}) {
7283
+ return this.Navvy.simple(this.url.list, param, BXRestMapCrmCurrency.list);
7284
+ }
7285
+ /**
7286
+ * Удаляет валюту.
7287
+ *
7288
+ * @param param Символьный идентификатор удаляемой валюты.
7289
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-delete.html
7290
+ */
7291
+ delete(param) {
7292
+ return this.Navvy.simple(this.url.delete, param);
7293
+ }
7294
+ /**
7295
+ * Возвращает описание полей валюты.
7296
+ *
7297
+ * @see https://apidocs.bitrix24.ru/api-reference/crm/currency/crm-currency-fields.html
7298
+ */
7299
+ fields() {
7300
+ return this.Navvy.simple(this.url.fields);
7301
+ }
7302
+ }
7303
+
6858
7304
  class BXRestNavvyCrm {
6859
7305
  constructor() {
7306
+ /** Валюты CRM (`crm.currency.*`). */
7307
+ this.currency = new BXRestNavvyCrmCurrency();
7308
+ /** Генератор документов CRM (`crm.documentgenerator.*`). */
7309
+ this.documentGenerator = new BXRestNavvyCrmDocumentGenerator();
6860
7310
  /** Цифровые рабочие места (`crm.automatedsolution.*`). */
6861
7311
  this.automatedSolution = new BXRestNavvyCrmAutomatedSolution();
6862
7312
  /** Автоматизация CRM (`crm.automation.*`). */