@peopl-health/nexus 4.1.4 → 4.1.5
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.
|
@@ -22,10 +22,7 @@ async function updateMessageStatus(messageSid, status, errorCode = null, errorMe
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
let updated = await Message.findOneAndUpdate(
|
|
25
|
-
{
|
|
26
|
-
{ message_id: messageSid, 'statusInfo.recoveryMessageId': { $exists: false } },
|
|
27
|
-
{ 'statusInfo.recoveryMessageId': messageSid }
|
|
28
|
-
]},
|
|
25
|
+
{ message_id: messageSid },
|
|
29
26
|
{ $set: updateData },
|
|
30
27
|
{ new: true }
|
|
31
28
|
);
|
|
@@ -114,12 +111,7 @@ async function handleStatusCallback(twilioStatusData, { eventBus } = {}) {
|
|
|
114
111
|
|
|
115
112
|
async function getMessageStatus(messageSid) {
|
|
116
113
|
try {
|
|
117
|
-
return await Message.findOne({
|
|
118
|
-
$or: [
|
|
119
|
-
{ message_id: messageSid },
|
|
120
|
-
{ 'statusInfo.recoveryMessageId': messageSid }
|
|
121
|
-
]
|
|
122
|
-
})
|
|
114
|
+
return await Message.findOne({ message_id: messageSid })
|
|
123
115
|
.select('statusInfo message_id numero body')
|
|
124
116
|
.lean();
|
|
125
117
|
} catch (error) {
|
|
@@ -56,7 +56,7 @@ class TemplateApprovalJob extends BaseJob {
|
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
const recovery = message.statusInfo || {};
|
|
59
|
-
if (recovery.
|
|
59
|
+
if (recovery.recoverySentAt || recovery.recoveryRejectedAt) {
|
|
60
60
|
logger.info('[TemplateApprovalJob] Recovery already completed', { messageId, templateSid });
|
|
61
61
|
return { success: false, reason: 'already_completed' };
|
|
62
62
|
}
|
|
@@ -132,17 +132,7 @@ class TemplateApprovalJob extends BaseJob {
|
|
|
132
132
|
throw sendErr;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
|
|
136
|
-
await Message.updateOne(
|
|
137
|
-
{ _id: message._id },
|
|
138
|
-
{ $set: { 'statusInfo.recoveryMessageId': recoveryMessageId } }
|
|
139
|
-
);
|
|
140
|
-
logger.info('[TemplateApprovalJob] Recovered', { originalMessageSid, recoveryMessageId, templateSid });
|
|
141
|
-
} catch (dbErr) {
|
|
142
|
-
logger.error('[TemplateApprovalJob] CRITICAL: send succeeded but DB update failed', {
|
|
143
|
-
messageId: message._id, templateSid, recoveryMessageId, error: dbErr.message
|
|
144
|
-
});
|
|
145
|
-
}
|
|
135
|
+
logger.info('[TemplateApprovalJob] Recovered', { originalMessageSid, recoveryMessageId, templateSid });
|
|
146
136
|
|
|
147
137
|
await recordDeliveryAttempt({
|
|
148
138
|
messageData: { contentSid: templateSid },
|
|
@@ -85,7 +85,6 @@ const messageSchema = new mongoose.Schema({
|
|
|
85
85
|
recoveryTemplateSid: { type: String, default: null },
|
|
86
86
|
recoveryStartedAt: { type: Date, default: null },
|
|
87
87
|
recoverySentAt: { type: Date, default: null },
|
|
88
|
-
recoveryMessageId: { type: String, default: null },
|
|
89
88
|
recoveryRejectedAt: { type: Date, default: null },
|
|
90
89
|
latestDeliveryStatus: {
|
|
91
90
|
type: String,
|
|
@@ -111,7 +110,6 @@ messageSchema.index({ nombre_whatsapp: 1, createdAt: -1 }, { name: 'nombre_whats
|
|
|
111
110
|
|
|
112
111
|
messageSchema.index({ createdAt: -1 }, { name: 'global_sort_idx' });
|
|
113
112
|
|
|
114
|
-
messageSchema.index({ 'statusInfo.recoveryMessageId': 1 }, { name: 'recovery_message_id_idx', sparse: true });
|
|
115
113
|
messageSchema.index({ message_id: 1 }, { name: 'message_id_idx', sparse: true });
|
|
116
114
|
|
|
117
115
|
messageSchema.index({ triggeredBy: 1, createdAt: -1 }, { name: 'triggered_by_idx', sparse: true });
|