@peopl-health/nexus 4.1.6 → 4.1.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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const { logger } = require('../utils/logger');
|
|
2
2
|
|
|
3
3
|
const { Message } = require('../models/messageModel');
|
|
4
|
-
const { DeliveryAttempt } = require('../models/deliveryAttemptModel');
|
|
4
|
+
const { DeliveryAttempt, DELIVERY_ATTEMPT_TERMINAL_STATUSES } = require('../models/deliveryAttemptModel');
|
|
5
5
|
|
|
6
6
|
async function recordDeliveryAttempt({
|
|
7
7
|
messageData = null, messageId = null, twilioResult = null, kind, body = null,
|
|
@@ -61,7 +61,7 @@ async function updateDeliveryAttemptByTwilioSid(twilioSid, { status, errorCode =
|
|
|
61
61
|
...(errorMessage != null && { errorMessage })
|
|
62
62
|
};
|
|
63
63
|
const attempt = await DeliveryAttempt.findOneAndUpdate(
|
|
64
|
-
{ twilioSid },
|
|
64
|
+
{ twilioSid, status: { $nin: DELIVERY_ATTEMPT_TERMINAL_STATUSES } },
|
|
65
65
|
{ $set: update },
|
|
66
66
|
{ new: true }
|
|
67
67
|
);
|
|
@@ -4,7 +4,7 @@ const { logger } = require('../utils/logger');
|
|
|
4
4
|
const { createEvent, safeEmit } = require('../utils/eventUtils');
|
|
5
5
|
|
|
6
6
|
const { Message } = require('../models/messageModel');
|
|
7
|
-
const { DeliveryAttempt } = require('../models/deliveryAttemptModel');
|
|
7
|
+
const { DeliveryAttempt, DELIVERY_ATTEMPT_TERMINAL_STATUSES } = require('../models/deliveryAttemptModel');
|
|
8
8
|
|
|
9
9
|
const { handle24HourWindowError } = require('../helpers/templateRecoveryHelper');
|
|
10
10
|
const { updateDeliveryAttemptByTwilioSid } = require('../helpers/deliveryAttemptHelper');
|
|
@@ -21,8 +21,10 @@ async function updateMessageStatus(messageSid, status, errorCode = null, errorMe
|
|
|
21
21
|
...(errorMessage && { 'statusInfo.errorMessage': errorMessage })
|
|
22
22
|
};
|
|
23
23
|
|
|
24
|
+
const notTerminal = { 'statusInfo.status': { $nin: DELIVERY_ATTEMPT_TERMINAL_STATUSES } };
|
|
25
|
+
|
|
24
26
|
let updated = await Message.findOneAndUpdate(
|
|
25
|
-
{ message_id: messageSid },
|
|
27
|
+
{ message_id: messageSid, ...notTerminal },
|
|
26
28
|
{ $set: updateData },
|
|
27
29
|
{ new: true }
|
|
28
30
|
);
|
|
@@ -31,7 +33,7 @@ async function updateMessageStatus(messageSid, status, errorCode = null, errorMe
|
|
|
31
33
|
const attempt = await DeliveryAttempt.findOne({ twilioSid: messageSid }, '_id messageId').lean();
|
|
32
34
|
if (attempt?.messageId) {
|
|
33
35
|
updated = await Message.findOneAndUpdate(
|
|
34
|
-
{ _id: attempt.messageId },
|
|
36
|
+
{ _id: attempt.messageId, ...notTerminal },
|
|
35
37
|
{ $set: updateData },
|
|
36
38
|
{ new: true }
|
|
37
39
|
);
|
|
@@ -2,6 +2,7 @@ const mongoose = require('mongoose');
|
|
|
2
2
|
|
|
3
3
|
const KIND_VALUES = ['freeform', 'template', 'recovery_template', 'recovery_template_setup'];
|
|
4
4
|
const STATUS_VALUES = [null, 'queued', 'sending', 'sent', 'delivered', 'undelivered', 'failed', 'read'];
|
|
5
|
+
const TERMINAL_STATUS_VALUES = ['delivered', 'read', 'failed', 'undelivered'];
|
|
5
6
|
const ERROR_SOURCE_VALUES = [null, 'twilio_sync', 'twilio_async', 'server'];
|
|
6
7
|
|
|
7
8
|
const deliveryAttemptSchema = new mongoose.Schema({
|
|
@@ -45,5 +46,6 @@ module.exports = {
|
|
|
45
46
|
DeliveryAttempt,
|
|
46
47
|
DELIVERY_ATTEMPT_KINDS: KIND_VALUES,
|
|
47
48
|
DELIVERY_ATTEMPT_STATUSES: STATUS_VALUES,
|
|
49
|
+
DELIVERY_ATTEMPT_TERMINAL_STATUSES: TERMINAL_STATUS_VALUES,
|
|
48
50
|
DELIVERY_ATTEMPT_ERROR_SOURCES: ERROR_SOURCE_VALUES
|
|
49
51
|
};
|