@andrey4emk/npm-app-back-b24 0.6.14 → 0.8.0
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/bitrix24/eventGet.js +47 -39
- package/package.json +1 -1
package/bitrix24/eventGet.js
CHANGED
|
@@ -13,48 +13,56 @@ export class Event {
|
|
|
13
13
|
this.b24 = b24;
|
|
14
14
|
}
|
|
15
15
|
async get(eventName) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
// Запрашиваем офлайн события сделок через API Bitrix24
|
|
25
|
-
let arrOfflineEvents = await this.b24.callMethod("event.offline.get", {
|
|
26
|
-
clear: 0,
|
|
27
|
-
filter: { EVENT_NAME: eventName },
|
|
28
|
-
// auth_connector: "change_entity_app",
|
|
29
|
-
});
|
|
30
|
-
arrOfflineEvents = arrOfflineEvents.getData();
|
|
31
|
-
// Очищаем сразу события, у которых EVENT_ADDITIONAL: { user_id: '138' }, их не обрабатываем
|
|
32
|
-
let arrEventsToClear = arrOfflineEvents.result.events.filter((event) => event.EVENT_ADDITIONAL.user_id === "138");
|
|
33
|
-
if (arrEventsToClear.length > 0) {
|
|
34
|
-
let arrMessageIdToClear = arrEventsToClear.map((event) => event.MESSAGE_ID);
|
|
35
|
-
let resEventClear = await this.b24.callMethod("event.offline.clear", {
|
|
36
|
-
process_id: arrOfflineEvents.result.process_id,
|
|
37
|
-
message_id: arrMessageIdToClear,
|
|
16
|
+
{
|
|
17
|
+
try {
|
|
18
|
+
// Запрашиваем офлайн события сделок через API Bitrix24
|
|
19
|
+
let arrOfflineEvents = await this.b24.callMethod("event.offline.get", {
|
|
20
|
+
clear: 0,
|
|
21
|
+
filter: { EVENT_NAME: eventName },
|
|
22
|
+
// auth_connector: "change_entity_app",
|
|
38
23
|
});
|
|
39
|
-
|
|
40
|
-
// Удаляем эти события из основного массива arrOfflineEvents.result.events
|
|
41
|
-
arrOfflineEvents.result.events = arrOfflineEvents.result.events.filter((event) => event.EVENT_ADDITIONAL.user_id !== "138");
|
|
42
|
-
}
|
|
24
|
+
arrOfflineEvents = arrOfflineEvents.getData();
|
|
43
25
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
26
|
+
if (eventName == "ONIMCONNECTORMESSAGEADD") {
|
|
27
|
+
// Написали сообщение из битрикс24 в кастомный коннектор
|
|
28
|
+
return { error: false, events: arrOfflineEvents.result.events };
|
|
29
|
+
} else {
|
|
30
|
+
// Пока тут обрабатываем только события сделок и смарт процессов
|
|
31
|
+
// Переменные
|
|
32
|
+
let events = {
|
|
33
|
+
processId: null,
|
|
34
|
+
entitysId: [],
|
|
35
|
+
arrMessageIdAndEntityId: [],
|
|
36
|
+
};
|
|
53
37
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
38
|
+
// Очищаем сразу события, у которых EVENT_ADDITIONAL: { user_id: '138' }, их не обрабатываем
|
|
39
|
+
let arrEventsToClear = arrOfflineEvents.result.events.filter((event) => event.EVENT_ADDITIONAL.user_id === "138");
|
|
40
|
+
if (arrEventsToClear.length > 0) {
|
|
41
|
+
let arrMessageIdToClear = arrEventsToClear.map((event) => event.MESSAGE_ID);
|
|
42
|
+
let resEventClear = await this.b24.callMethod("event.offline.clear", {
|
|
43
|
+
process_id: arrOfflineEvents.result.process_id,
|
|
44
|
+
message_id: arrMessageIdToClear,
|
|
45
|
+
});
|
|
46
|
+
resEventClear = resEventClear.getData();
|
|
47
|
+
// Удаляем эти события из основного массива arrOfflineEvents.result.events
|
|
48
|
+
arrOfflineEvents.result.events = arrOfflineEvents.result.events.filter((event) => event.EVENT_ADDITIONAL.user_id !== "138");
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (arrOfflineEvents.result.events.length > 0) {
|
|
52
|
+
events.processId = arrOfflineEvents.result.process_id;
|
|
53
|
+
events.entitysId = arrOfflineEvents.result.events.map((event) => event.EVENT_DATA.FIELDS.ID);
|
|
54
|
+
events.arrMessageIdAndEntityId = arrOfflineEvents.result.events.map((event) => ({
|
|
55
|
+
messageId: event.MESSAGE_ID,
|
|
56
|
+
entityId: event.EVENT_DATA.FIELDS.ID,
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Возвращаем очищенный результат
|
|
61
|
+
return { error: false, events: events };
|
|
62
|
+
}
|
|
63
|
+
} catch (error) {
|
|
64
|
+
return { error: true, status: "error", message: `Не удалось получить события. ${error}` };
|
|
65
|
+
}
|
|
58
66
|
}
|
|
59
67
|
}
|
|
60
68
|
|