bx-rest 0.11.0 → 0.11.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bx-rest",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Bitrix24 REST API client and TypeScript SDK for Angular, Vue and browser apps",
5
5
  "keywords": [
6
6
  "bitrix",
@@ -74,6 +74,9 @@
74
74
  "./typification/disk": {
75
75
  "types": "./typification/rest/disk.d.ts"
76
76
  },
77
+ "./typification/event": {
78
+ "types": "./typification/rest/event.d.ts"
79
+ },
77
80
  "./typification/im": {
78
81
  "types": "./typification/rest/im.d.ts"
79
82
  },
@@ -0,0 +1,49 @@
1
+ import { iBXRestEventOfflineGetResult, iBXRestEventOfflineListItem, iBXRestParamEventOfflineClear, iBXRestParamEventOfflineError, iBXRestParamEventOfflineGet, iBXRestParamEventOfflineList } from '../../typification/rest/event';
2
+ /** Очередь офлайн-событий (`event.offline.*`). Доступна администраторам. */
3
+ export declare class BXRestNavvyEventOffline {
4
+ private readonly Navvy;
5
+ readonly url: {
6
+ /** Возвращает и удаляет либо резервирует первые записи очереди. */
7
+ get: string[];
8
+ /** Возвращает страницу очереди, не меняя состояние записей. */
9
+ list: string[];
10
+ /** Удаляет обработанные записи зарезервированного пакета. */
11
+ clear: string[];
12
+ /** Помечает записи зарезервированного пакета ошибочными. */
13
+ error: string[];
14
+ };
15
+ /**
16
+ * Возвращает первые записи очереди согласно фильтру.
17
+ *
18
+ * По умолчанию метод удаляет выбранные записи. Передайте `clear: 0`, чтобы
19
+ * зарезервировать их и получить `process_id` для последующего вызова
20
+ * `clear` или `error`. Параллельные запросы получают разные наборы записей.
21
+ *
22
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-get.html
23
+ */
24
+ get(param?: iBXRestParamEventOfflineGet): import("../../services/navvy").NavvySimple<iBXRestEventOfflineGetResult, iBXRestEventOfflineGetResult, iBXRestParamEventOfflineGet | undefined>;
25
+ /**
26
+ * Читает одну страницу текущей очереди, не меняя состояние записей.
27
+ *
28
+ * Метод не резервирует записи и не формирует `process_id`. Размер страницы
29
+ * фиксирован и равен 50 записям.
30
+ *
31
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-list.html
32
+ */
33
+ list(param?: iBXRestParamEventOfflineList): import("../../services/navvy").NavvyPag<iBXRestEventOfflineListItem, iBXRestEventOfflineListItem, iBXRestParamEventOfflineList>;
34
+ /**
35
+ * Удаляет обработанные записи зарезервированного пакета.
36
+ *
37
+ * Без `id` и `message_id` удаляет все записи с переданным `process_id`.
38
+ * Если указаны оба массива, `id` имеет приоритет.
39
+ *
40
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-clear.html
41
+ */
42
+ clear(param: iBXRestParamEventOfflineClear): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventOfflineClear | undefined>;
43
+ /**
44
+ * Помечает записи зарезервированного пакета ошибочными.
45
+ *
46
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-offline-error.html
47
+ */
48
+ error(param: iBXRestParamEventOfflineError): import("../../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventOfflineError | undefined>;
49
+ }
@@ -0,0 +1,57 @@
1
+ import { iBXRestEventHandler, iBXRestEventUnbindResult, iBXRestParamEventBind, iBXRestParamEventUnbind, iBXRestParamEvents } from '../typification/rest/event';
2
+ import { BXRestNavvyEventOffline } from './event/offline';
3
+ /** Регистрация обработчиков и работа с событиями Битрикс24. */
4
+ export declare class BXRestNavvyEvent {
5
+ private readonly Navvy;
6
+ /** Очередь офлайн-событий. Для вызовов требуются права администратора. */
7
+ readonly offline: BXRestNavvyEventOffline;
8
+ readonly url: {
9
+ /** Регистрирует обработчик события. */
10
+ bind: string[];
11
+ /** Возвращает зарегистрированные обработчики приложения. */
12
+ get: string[];
13
+ /** Удаляет зарегистрированный обработчик. */
14
+ unbind: string[];
15
+ /** Возвращает доступные текущему приложению события. */
16
+ events: string[];
17
+ };
18
+ /**
19
+ * Регистрирует новый обработчик события.
20
+ *
21
+ * Метод работает только в контексте авторизации приложения. URL обработчика
22
+ * должен быть доступен серверам Битрикс24 извне. Пользователь без прав
23
+ * администратора может регистрировать только онлайн-события от своего имени.
24
+ *
25
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-bind.html
26
+ */
27
+ bind(param: iBXRestParamEventBind): import("../services/navvy").NavvySimple<boolean, boolean, iBXRestParamEventBind | undefined>;
28
+ /**
29
+ * Возвращает список зарегистрированных обработчиков событий.
30
+ *
31
+ * Пользователь без прав администратора получает только обработчики,
32
+ * зарегистрированные для него. Метод работает только в контексте авторизации
33
+ * приложения.
34
+ *
35
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-get.html
36
+ */
37
+ get(): import("../services/navvy").NavvySimple<iBXRestEventHandler[], iBXRestEventHandler[], undefined>;
38
+ /**
39
+ * Удаляет зарегистрированный обработчик события.
40
+ *
41
+ * Пользователь без прав администратора может удалять только собственные
42
+ * обработчики онлайн-событий.
43
+ *
44
+ * @see https://apidocs.bitrix24.ru/api-reference/events/event-unbind.html
45
+ */
46
+ unbind(param: iBXRestParamEventUnbind): import("../services/navvy").NavvySimple<iBXRestEventUnbindResult, iBXRestEventUnbindResult, iBXRestParamEventUnbind | undefined>;
47
+ /**
48
+ * Возвращает общий список доступных событий.
49
+ *
50
+ * `SCOPE` ограничивает результат указанным разрешением. `FULL: true`
51
+ * запрашивает полный список, но игнорируется при одновременной передаче
52
+ * `SCOPE`.
53
+ *
54
+ * @see https://apidocs.bitrix24.ru/api-reference/events/events.html
55
+ */
56
+ events(param?: iBXRestParamEvents): import("../services/navvy").NavvySimple<string[], string[], iBXRestParamEvents | undefined>;
57
+ }
package/rest/navvy.d.ts CHANGED
@@ -16,6 +16,7 @@ import { BXRestNavvyTimeMan } from '../request-navvy/timeman';
16
16
  import { BXRestNavvySocialNetWork } from '../request-navvy/socialnetwork';
17
17
  import { BXRestNavvyPull } from '../request-navvy/pull';
18
18
  import { BXRestNavvyCrm } from '../request-navvy/crm';
19
+ import { BXRestNavvyEvent } from '../request-navvy/event';
19
20
  import { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile';
20
21
  export declare class BXRestNavvy {
21
22
  readonly user: BXRestNavvyUser;
@@ -35,6 +36,8 @@ export declare class BXRestNavvy {
35
36
  readonly socialNetWork: BXRestNavvySocialNetWork;
36
37
  readonly pull: BXRestNavvyPull;
37
38
  readonly crm: BXRestNavvyCrm;
39
+ /** Регистрация обработчиков и работа с онлайн- и офлайн-событиями. */
40
+ readonly event: BXRestNavvyEvent;
38
41
  readonly Navvy: Navvy;
39
42
  profile(): import("../services/navvy").NavvySimple<iBXRestProfileHttp, iBXRestProfile, undefined>;
40
43
  }
@@ -0,0 +1,178 @@
1
+ import { iBXRestPagination } from './base/api-pagination-bx';
2
+ import { iBXRestFilterKeys } from './base/filter-generator';
3
+ /** Режим доставки события. */
4
+ export type iBXRestEventType = 'online' | 'offline';
5
+ /** Дополнительные настройки обработчика события. */
6
+ export interface iBXRestEventBindOptions {
7
+ /**
8
+ * Минимальный интервал между уведомлениями `ONOFFLINEEVENT` в секундах.
9
+ *
10
+ * Если не указан, Битрикс24 использует интервал в одну секунду.
11
+ */
12
+ minTimeout?: number;
13
+ /** Дополнительные настройки, поддерживаемые конкретным событием. */
14
+ [key: string]: unknown;
15
+ }
16
+ /** Параметры `event.bind`. */
17
+ export interface iBXRestParamEventBind {
18
+ /** Имя события, например `ONCRMLEADADD`. */
19
+ event: string;
20
+ /** Внешний URL обработчика, доступный серверам Битрикс24. */
21
+ handler: string;
22
+ /**
23
+ * Идентификатор пользователя, под которым авторизуется обработчик.
24
+ *
25
+ * Если не указан, используется авторизация пользователя, действие которого
26
+ * привело к событию.
27
+ */
28
+ auth_type?: number;
29
+ /** Режим доставки. По умолчанию — `online`. */
30
+ event_type?: iBXRestEventType;
31
+ /**
32
+ * Ключ источника для офлайн-событий.
33
+ *
34
+ * Позволяет разделять очередь по источникам и исключать ложные срабатывания.
35
+ */
36
+ auth_connector?: string;
37
+ /** Дополнительные настройки регистрируемого события. */
38
+ options?: iBXRestEventBindOptions;
39
+ }
40
+ /** Зарегистрированный обработчик, возвращаемый `event.get`. */
41
+ export interface iBXRestEventHandler {
42
+ /** Имя события. */
43
+ event: string;
44
+ /** URL обработчика. */
45
+ handler: string;
46
+ /** Идентификатор пользователя авторизации в исходном формате REST API. */
47
+ auth_type: string;
48
+ /** Признак офлайн-обработчика: `1` — офлайн, `0` — онлайн. */
49
+ offline: 0 | 1;
50
+ }
51
+ /** Параметры `event.unbind`. */
52
+ export interface iBXRestParamEventUnbind {
53
+ /** Имя события. */
54
+ event: string;
55
+ /** URL обработчика события. */
56
+ handler: string;
57
+ /**
58
+ * Идентификатор пользователя авторизации.
59
+ *
60
+ * Передайте `0`, чтобы удалить обработчики с пустым `auth_type`, не затрагивая
61
+ * обработчики, зарегистрированные для конкретных пользователей.
62
+ */
63
+ auth_type?: number;
64
+ /** Режим доставки. По умолчанию — `online`. */
65
+ event_type?: iBXRestEventType;
66
+ }
67
+ /** Результат удаления обработчиков методом `event.unbind`. */
68
+ export interface iBXRestEventUnbindResult {
69
+ /** Количество удаленных обработчиков. */
70
+ count: number;
71
+ }
72
+ /** Параметры получения общего списка доступных событий методом `events`. */
73
+ export interface iBXRestParamEvents {
74
+ /** Разрешение, которому должны принадлежать возвращаемые события. */
75
+ SCOPE?: string;
76
+ /**
77
+ * Вернуть полный список событий.
78
+ *
79
+ * Игнорируется, если одновременно передан `SCOPE`.
80
+ */
81
+ FULL?: boolean;
82
+ }
83
+ /** Поле записи очереди, доступное для фильтрации и сортировки. */
84
+ export type iBXRestEventOfflineField = 'ID' | 'TIMESTAMP_X' | 'EVENT_NAME' | 'MESSAGE_ID' | 'PROCESS_ID' | 'ERROR';
85
+ /** Значение фильтра очереди офлайн-событий. */
86
+ export type iBXRestEventOfflineFilterValue = string | number | boolean | (string | number | boolean)[];
87
+ /**
88
+ * Фильтр очереди офлайн-событий.
89
+ *
90
+ * Операция указывается перед именем поля, например `=EVENT_NAME` или `>=ID`.
91
+ */
92
+ export type iBXRestEventOfflineFilter = Partial<Record<`${iBXRestFilterKeys}${iBXRestEventOfflineField}`, iBXRestEventOfflineFilterValue>>;
93
+ /** Направление сортировки очереди офлайн-событий. */
94
+ export type iBXRestEventOfflineSortOrder = 'ASC' | 'DESC';
95
+ /** Сортировка очереди офлайн-событий. */
96
+ export type iBXRestEventOfflineOrder = Partial<Record<iBXRestEventOfflineField, iBXRestEventOfflineSortOrder>>;
97
+ /** Общие параметры выборки очереди офлайн-событий. */
98
+ export interface iBXRestParamEventOfflineSelection {
99
+ /** Фильтр по полям записи очереди. */
100
+ filter?: iBXRestEventOfflineFilter;
101
+ /** Сортировка по полям записи очереди. */
102
+ order?: iBXRestEventOfflineOrder;
103
+ /**
104
+ * Ключ источника.
105
+ *
106
+ * Должен совпадать с `auth_connector`, переданным при подписке через
107
+ * `event.bind`.
108
+ */
109
+ auth_connector?: string;
110
+ }
111
+ /** Параметры `event.offline.get`. */
112
+ export interface iBXRestParamEventOfflineGet extends iBXRestParamEventOfflineSelection {
113
+ /** Максимальное количество записей. По умолчанию — `50`. */
114
+ limit?: number;
115
+ /** Удалять выбранные записи: `1` — да, `0` — зарезервировать. По умолчанию — `1`. */
116
+ clear?: 0 | 1;
117
+ /** Идентификатор процесса для повторного получения необработанных им записей. */
118
+ process_id?: string;
119
+ /** Возвращать записи, помеченные ошибочными. По умолчанию — `0`. */
120
+ error?: 0 | 1;
121
+ }
122
+ /** Параметры `event.offline.list`. */
123
+ export interface iBXRestParamEventOfflineList extends iBXRestParamEventOfflineSelection, iBXRestPagination {
124
+ }
125
+ /** Запись очереди офлайн-событий. */
126
+ export interface iBXRestEventOfflineItem {
127
+ /** Идентификатор записи. */
128
+ ID: string;
129
+ /** Дата и время создания записи в формате ISO 8601. */
130
+ TIMESTAMP_X: string;
131
+ /** Имя события. */
132
+ EVENT_NAME: string;
133
+ /** Данные события в исходном формате REST API. */
134
+ EVENT_DATA: unknown;
135
+ /** Дополнительные данные события в исходном формате REST API. */
136
+ EVENT_ADDITIONAL: unknown;
137
+ /** Идентификатор сообщения. */
138
+ MESSAGE_ID: string;
139
+ }
140
+ /** Запись, возвращаемая методом `event.offline.list`. */
141
+ export interface iBXRestEventOfflineListItem extends iBXRestEventOfflineItem {
142
+ /** Идентификатор процесса, зарезервировавшего запись; пустая строка, если запись свободна. */
143
+ PROCESS_ID: string;
144
+ /** Признак ошибки обработки в исходном формате REST API. */
145
+ ERROR: '0' | '1';
146
+ }
147
+ /** Результат `event.offline.get`. */
148
+ export interface iBXRestEventOfflineGetResult {
149
+ /**
150
+ * Идентификатор зарезервированного пакета.
151
+ *
152
+ * Возвращается при `clear: 0`; при немедленной очистке имеет значение `null`.
153
+ */
154
+ process_id: string | null;
155
+ /** Выбранные записи очереди. */
156
+ events: iBXRestEventOfflineItem[];
157
+ }
158
+ /** Параметры `event.offline.clear`. */
159
+ export interface iBXRestParamEventOfflineClear {
160
+ /** Идентификатор пакета, полученный от `event.offline.get` при `clear: 0`. */
161
+ process_id: string;
162
+ /**
163
+ * Идентификаторы записей для удаления.
164
+ *
165
+ * Если не указаны, удаляются все записи пакета. Имеют приоритет над
166
+ * `message_id`.
167
+ */
168
+ id?: (string | number)[];
169
+ /** Значения `MESSAGE_ID` удаляемых записей. */
170
+ message_id?: (string | number)[];
171
+ }
172
+ /** Параметры `event.offline.error`. */
173
+ export interface iBXRestParamEventOfflineError {
174
+ /** Идентификатор процесса, обрабатывающего записи. */
175
+ process_id: string;
176
+ /** Значения `MESSAGE_ID` записей, которые нужно пометить ошибочными. */
177
+ message_id?: (string | number)[];
178
+ }