@peopl-health/nexus 3.13.6 → 3.13.7
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.
|
@@ -2,12 +2,14 @@ const { logger } = require('../utils/logger');
|
|
|
2
2
|
|
|
3
3
|
const { handleStatusCallback, getMessageStatus } = require('../helpers/messageStatusHelper');
|
|
4
4
|
|
|
5
|
+
const { getEventBus } = require('../core/NexusMessaging');
|
|
6
|
+
|
|
5
7
|
async function messageStatusCallbackController(req, res) {
|
|
6
8
|
try {
|
|
7
9
|
const { MessageSid, MessageStatus } = req.body;
|
|
8
10
|
logger.debug('[MessageStatusController] Status callback received', { messageSid: MessageSid, status: MessageStatus });
|
|
9
|
-
|
|
10
|
-
const updated = await handleStatusCallback(req.body);
|
|
11
|
+
|
|
12
|
+
const updated = await handleStatusCallback(req.body, { eventBus: getEventBus() });
|
|
11
13
|
|
|
12
14
|
if (!updated) {
|
|
13
15
|
logger.warn('[MessageStatusController] Message not found', { messageSid: MessageSid });
|
|
@@ -9,7 +9,6 @@ const { logger } = require('../utils/logger');
|
|
|
9
9
|
const { Message, insertMessage } = require('../models/messageModel');
|
|
10
10
|
const { Thread } = require('../models/threadModel');
|
|
11
11
|
|
|
12
|
-
const { setEventBus: setStatusEventBus } = require('../helpers/messageStatusHelper');
|
|
13
12
|
const { ensureThreadExists } = require('../helpers/threadHelper');
|
|
14
13
|
const { storeRunMetrics } = require('../helpers/metricsHelper');
|
|
15
14
|
|
|
@@ -44,7 +43,6 @@ class NexusMessaging {
|
|
|
44
43
|
onFlow: null
|
|
45
44
|
};
|
|
46
45
|
this.events = new EventEmitter();
|
|
47
|
-
setStatusEventBus(this.events);
|
|
48
46
|
this.middleware = {
|
|
49
47
|
any: [],
|
|
50
48
|
message: [],
|
|
@@ -497,7 +495,6 @@ class NexusMessaging {
|
|
|
497
495
|
if (this.provider) await this.provider.disconnect();
|
|
498
496
|
if (this.queueAdapter) await this.queueAdapter.shutdown();
|
|
499
497
|
this.events.removeAllListeners();
|
|
500
|
-
setStatusEventBus(null);
|
|
501
498
|
}
|
|
502
499
|
}
|
|
503
500
|
|
|
@@ -9,12 +9,6 @@ const { handle24HourWindowError } = require('../helpers/templateRecoveryHelper')
|
|
|
9
9
|
|
|
10
10
|
const { addLinkedRecord, updateRecordByFilter } = require('../services/airtableService');
|
|
11
11
|
|
|
12
|
-
let _eventBus = null;
|
|
13
|
-
|
|
14
|
-
function setEventBus(eventBus) {
|
|
15
|
-
_eventBus = eventBus;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
12
|
async function updateMessageStatus(messageSid, status, errorCode = null, errorMessage = null) {
|
|
19
13
|
try {
|
|
20
14
|
const updateData = {
|
|
@@ -72,7 +66,7 @@ async function updateMessageStatus(messageSid, status, errorCode = null, errorMe
|
|
|
72
66
|
}
|
|
73
67
|
}
|
|
74
68
|
|
|
75
|
-
async function handleStatusCallback(twilioStatusData) {
|
|
69
|
+
async function handleStatusCallback(twilioStatusData, { eventBus } = {}) {
|
|
76
70
|
const { MessageSid, MessageStatus, ErrorCode, ErrorMessage } = twilioStatusData;
|
|
77
71
|
|
|
78
72
|
if (!MessageSid || !MessageStatus) {
|
|
@@ -82,8 +76,8 @@ async function handleStatusCallback(twilioStatusData) {
|
|
|
82
76
|
|
|
83
77
|
const updated = await updateMessageStatus(MessageSid, MessageStatus.toLowerCase(), ErrorCode, ErrorMessage);
|
|
84
78
|
|
|
85
|
-
if (updated &&
|
|
86
|
-
safeEmit(
|
|
79
|
+
if (updated && eventBus) {
|
|
80
|
+
safeEmit(eventBus, 'message:status', createEvent('message:status', {
|
|
87
81
|
messageId: updated.message_id,
|
|
88
82
|
to: updated.numero,
|
|
89
83
|
status: MessageStatus.toLowerCase(),
|
|
@@ -120,6 +114,5 @@ async function getMessageStatus(messageSid) {
|
|
|
120
114
|
module.exports = {
|
|
121
115
|
updateMessageStatus,
|
|
122
116
|
handleStatusCallback,
|
|
123
|
-
getMessageStatus
|
|
124
|
-
setEventBus
|
|
117
|
+
getMessageStatus
|
|
125
118
|
};
|