@awell-health/awell-extensions 1.1.63 → 1.1.64
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/markdown.json +1 -1
- package/dist/extensions/sfdc/actions/createLead/createLead.js +6 -8
- package/dist/extensions/sfdc/actions/createLead/createLead.js.map +1 -1
- package/dist/extensions/sfdc/actions/updateLead/updateLead.js +6 -8
- package/dist/extensions/sfdc/actions/updateLead/updateLead.js.map +1 -1
- package/dist/extensions/sfdc/api/client.js +3 -6
- package/dist/extensions/sfdc/api/client.js.map +1 -1
- package/dist/extensions/sfdc/lib/errors.d.ts +9 -4
- package/dist/extensions/sfdc/lib/errors.js +18 -24
- package/dist/extensions/sfdc/lib/errors.js.map +1 -1
- package/dist/extensions/twilio/lib/appendOptOutLanguage.d.ts +3 -0
- package/dist/extensions/twilio/lib/appendOptOutLanguage.js +18 -0
- package/dist/extensions/twilio/lib/appendOptOutLanguage.js.map +1 -0
- package/dist/extensions/twilio/lib/errors.d.ts +9 -0
- package/dist/extensions/twilio/lib/errors.js +23 -0
- package/dist/extensions/twilio/lib/errors.js.map +1 -0
- package/dist/extensions/twilio/lib/index.d.ts +1 -0
- package/dist/extensions/twilio/lib/index.js +6 -0
- package/dist/extensions/twilio/lib/index.js.map +1 -0
- package/dist/extensions/twilio/settings.d.ts +30 -0
- package/dist/extensions/twilio/settings.js +39 -0
- package/dist/extensions/twilio/settings.js.map +1 -1
- package/dist/extensions/twilio/tests/settings.test.d.ts +1 -0
- package/dist/extensions/twilio/tests/settings.test.js +24 -0
- package/dist/extensions/twilio/tests/settings.test.js.map +1 -0
- package/dist/extensions/twilio/v2/actions/createFlowExecution/config/actionSchema.d.ts +33 -0
- package/dist/extensions/twilio/v2/actions/getMessages/getMessages.test.js +12 -0
- package/dist/extensions/twilio/v2/actions/getMessages/getMessages.test.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSms/sendSms.js +11 -29
- package/dist/extensions/twilio/v2/actions/sendSms/sendSms.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSms/sendSms.test.js +19 -15
- package/dist/extensions/twilio/v2/actions/sendSms/sendSms.test.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.js +11 -30
- package/dist/extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.test.js +25 -15
- package/dist/extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.test.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.js +10 -29
- package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.js.map +1 -1
- package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.test.js +19 -15
- package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.test.js.map +1 -1
- package/package.json +1 -1
@@ -24,6 +24,9 @@ describe('Get messages action', () => {
|
|
24
24
|
authToken: 'authToken',
|
25
25
|
fromNumber: '+19144542596',
|
26
26
|
messagingServiceSid: undefined,
|
27
|
+
addOptOutLanguage: undefined,
|
28
|
+
optOutLanguage: undefined,
|
29
|
+
language: undefined,
|
27
30
|
},
|
28
31
|
}), onComplete, onError);
|
29
32
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -50,6 +53,9 @@ describe('Get messages action', () => {
|
|
50
53
|
authToken: 'authToken',
|
51
54
|
fromNumber: '+19144542596',
|
52
55
|
messagingServiceSid: undefined,
|
56
|
+
addOptOutLanguage: undefined,
|
57
|
+
optOutLanguage: undefined,
|
58
|
+
language: undefined,
|
53
59
|
},
|
54
60
|
}), onComplete, onError);
|
55
61
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -76,6 +82,9 @@ describe('Get messages action', () => {
|
|
76
82
|
authToken: 'authToken',
|
77
83
|
fromNumber: '+19144542596',
|
78
84
|
messagingServiceSid: undefined,
|
85
|
+
addOptOutLanguage: undefined,
|
86
|
+
optOutLanguage: undefined,
|
87
|
+
language: undefined,
|
79
88
|
},
|
80
89
|
}), onComplete, onError);
|
81
90
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -101,6 +110,9 @@ describe('Get messages action', () => {
|
|
101
110
|
authToken: 'authToken',
|
102
111
|
fromNumber: '+19144542596',
|
103
112
|
messagingServiceSid: undefined,
|
113
|
+
addOptOutLanguage: undefined,
|
114
|
+
optOutLanguage: undefined,
|
115
|
+
language: undefined,
|
104
116
|
},
|
105
117
|
}), onComplete, onError);
|
106
118
|
expect(onComplete).not.toHaveBeenCalledWith();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getMessages.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/getMessages/getMessages.test.ts"],"names":[],"mappings":";;AAAA,+CAA2C;AAC3C,oDAA8D;AAE9D,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEzB,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,CAAC,SAAS,EAAE,CAAA;QACtB,OAAO,CAAC,SAAS,EAAE,CAAA;IACrB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,yBAAW,CAAC,iBAAiB,CACjC,IAAA,2BAAmB,EAAC;YAClB,MAAM,EAAE;gBACN,SAAS,EAAE,cAAc;gBACzB,IAAI,EAAE,cAAc;gBACpB,eAAe,EAAE,YAAY;gBAC7B,gBAAgB,EAAE,SAAS;gBAC3B,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,EAAE;aACd;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,eAAe;gBAC3B,SAAS,EAAE,WAAW;gBACtB,UAAU,EAAE,cAAc;gBAC1B,mBAAmB,EAAE,SAAS;
|
1
|
+
{"version":3,"file":"getMessages.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/getMessages/getMessages.test.ts"],"names":[],"mappings":"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"}
|
@@ -5,12 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.sendSms = void 0;
|
7
7
|
const zod_1 = require("zod");
|
8
|
-
const zod_validation_error_1 = require("zod-validation-error");
|
9
8
|
const twilio_1 = __importDefault(require("../../../common/sdk/twilio"));
|
10
9
|
const extensions_core_1 = require("@awell-health/extensions-core");
|
11
10
|
const settings_1 = require("../../../settings");
|
12
11
|
const config_1 = require("./config");
|
13
12
|
const lodash_1 = require("lodash");
|
13
|
+
const lib_1 = require("../../../lib");
|
14
|
+
const errors_1 = require("../../../lib/errors");
|
14
15
|
exports.sendSms = {
|
15
16
|
key: 'sendSms',
|
16
17
|
title: 'Send SMS (with from number)',
|
@@ -20,7 +21,7 @@ exports.sendSms = {
|
|
20
21
|
previewable: false,
|
21
22
|
onActivityCreated: async (payload, onComplete, onError) => {
|
22
23
|
try {
|
23
|
-
const { settings: { accountSid, authToken, fromNumber: defaultFromNumber }, fields: { recipient, message, from }, } = (0, extensions_core_1.validate)({
|
24
|
+
const { settings: { accountSid, authToken, fromNumber: defaultFromNumber, addOptOutLanguage, optOutLanguage, language, }, fields: { recipient, message, from }, } = (0, extensions_core_1.validate)({
|
24
25
|
schema: zod_1.z
|
25
26
|
.object({
|
26
27
|
settings: settings_1.SettingsValidationSchema,
|
@@ -43,42 +44,23 @@ exports.sendSms = {
|
|
43
44
|
accountSid,
|
44
45
|
});
|
45
46
|
await client.messages.create({
|
46
|
-
body:
|
47
|
+
body: addOptOutLanguage
|
48
|
+
? (0, lib_1.appendOptOutLanguage)(message, optOutLanguage, language)
|
49
|
+
: message,
|
47
50
|
from: from !== null && from !== void 0 ? from : defaultFromNumber,
|
48
51
|
to: recipient,
|
49
52
|
});
|
50
53
|
await onComplete();
|
51
54
|
}
|
52
|
-
catch (
|
53
|
-
if (
|
54
|
-
const error = (0, zod_validation_error_1.fromZodError)(err);
|
55
|
+
catch (error) {
|
56
|
+
if ((0, errors_1.isTwilioErrorResponse)(error)) {
|
55
57
|
await onError({
|
56
|
-
events: [
|
57
|
-
{
|
58
|
-
date: new Date().toISOString(),
|
59
|
-
text: { en: error.message },
|
60
|
-
error: {
|
61
|
-
category: 'BAD_REQUEST',
|
62
|
-
message: error.message,
|
63
|
-
},
|
64
|
-
},
|
65
|
-
],
|
58
|
+
events: [(0, errors_1.parseTwilioError)(error)],
|
66
59
|
});
|
67
60
|
}
|
68
61
|
else {
|
69
|
-
|
70
|
-
|
71
|
-
events: [
|
72
|
-
{
|
73
|
-
date: new Date().toISOString(),
|
74
|
-
text: { en: message },
|
75
|
-
error: {
|
76
|
-
category: 'SERVER_ERROR',
|
77
|
-
message,
|
78
|
-
},
|
79
|
-
},
|
80
|
-
],
|
81
|
-
});
|
62
|
+
// we handle ZodError and unknown errors in extension-server directly
|
63
|
+
throw error;
|
82
64
|
}
|
83
65
|
}
|
84
66
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendSms.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSms/sendSms.ts"],"names":[],"mappings":";;;;;;AAAA,
|
1
|
+
{"version":3,"file":"sendSms.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSms/sendSms.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAuB;AACvB,wEAAkD;AAGlD,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAyD;AACzD,mCAA8B;AAC9B,sCAAmD;AACnD,gDAA6E;AAEhE,QAAA,OAAO,GAA2C;IAC7D,GAAG,EAAE,SAAS;IACd,KAAK,EAAE,6BAA6B;IACpC,WAAW,EACT,kFAAkF;IACpF,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACxD,IAAI;YACF,MAAM,EACJ,QAAQ,EAAE,EACR,UAAU,EACV,SAAS,EACT,UAAU,EAAE,iBAAiB,EAC7B,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACT,EACD,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GACrC,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC;qBACN,MAAM,CAAC;oBACN,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;qBACD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC1B,8CAA8C;oBAC9C,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAA,cAAK,EAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;wBAChE,GAAG,CAAC,QAAQ,CAAC;4BACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;4BAC3B,KAAK,EAAE,IAAI;4BACX,OAAO,EACL,oEAAoE;yBACvE,CAAC,CAAA;qBACH;gBACH,CAAC,CAAC;gBACJ,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,UAAU,EAAE,SAAS,EAAE;gBAC9C,MAAM,EAAE,KAAK;gBACb,UAAU;aACX,CAAC,CAAA;YAEF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,IAAI,EAAE,iBAAiB;oBACrB,CAAC,CAAC,IAAA,0BAAoB,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC;oBACzD,CAAC,CAAC,OAAO;gBACX,IAAI,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,iBAAiB;gBAC/B,EAAE,EAAE,SAAS;aACd,CAAC,CAAA;YAEF,MAAM,UAAU,EAAE,CAAA;SACnB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,IAAA,8BAAqB,EAAC,KAAK,CAAC,EAAE;gBAChC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;iBAClC,CAAC,CAAA;aACH;iBAAM;gBACL,qEAAqE;gBACrE,MAAM,KAAK,CAAA;aACZ;SACF;IACH,CAAC;CACF,CAAA"}
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sendSms_1 = require("./sendSms");
|
7
7
|
const twilio_1 = __importDefault(require("../../../common/sdk/twilio"));
|
8
8
|
const tests_1 = require("../../../../../src/tests");
|
9
|
+
const zod_1 = require("zod");
|
9
10
|
describe('Send SMS (with from number) action', () => {
|
10
11
|
const onComplete = jest.fn();
|
11
12
|
const onError = jest.fn();
|
@@ -26,13 +27,16 @@ describe('Send SMS (with from number) action', () => {
|
|
26
27
|
authToken: 'authToken',
|
27
28
|
fromNumber: '+19144542596',
|
28
29
|
messagingServiceSid: undefined,
|
30
|
+
addOptOutLanguage: undefined,
|
31
|
+
optOutLanguage: undefined,
|
32
|
+
language: undefined,
|
29
33
|
},
|
30
34
|
}), onComplete, onError);
|
31
35
|
expect(onComplete).toHaveBeenCalled();
|
32
36
|
expect(onError).not.toHaveBeenCalled();
|
33
37
|
});
|
34
38
|
test('Should call the onError callback when there is no recipient', async () => {
|
35
|
-
|
39
|
+
const resp = sendSms_1.sendSms.onActivityCreated((0, tests_1.generateTestPayload)({
|
36
40
|
fields: {
|
37
41
|
message: 'Message content',
|
38
42
|
recipient: '',
|
@@ -43,13 +47,16 @@ describe('Send SMS (with from number) action', () => {
|
|
43
47
|
authToken: 'authToken',
|
44
48
|
fromNumber: '+19144542596',
|
45
49
|
messagingServiceSid: undefined,
|
50
|
+
addOptOutLanguage: undefined,
|
51
|
+
optOutLanguage: undefined,
|
52
|
+
language: undefined,
|
46
53
|
},
|
47
54
|
}), onComplete, onError);
|
55
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
48
56
|
expect(onComplete).not.toHaveBeenCalled();
|
49
|
-
expect(onError).toHaveBeenCalled();
|
50
57
|
});
|
51
58
|
test('Should call the onError callback when there is no message', async () => {
|
52
|
-
|
59
|
+
const resp = sendSms_1.sendSms.onActivityCreated((0, tests_1.generateTestPayload)({
|
53
60
|
fields: {
|
54
61
|
message: '',
|
55
62
|
recipient: '+19144542596',
|
@@ -60,10 +67,13 @@ describe('Send SMS (with from number) action', () => {
|
|
60
67
|
authToken: 'authToken',
|
61
68
|
fromNumber: '+19144542596',
|
62
69
|
messagingServiceSid: undefined,
|
70
|
+
addOptOutLanguage: undefined,
|
71
|
+
optOutLanguage: undefined,
|
72
|
+
language: undefined,
|
63
73
|
},
|
64
74
|
}), onComplete, onError);
|
75
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
65
76
|
expect(onComplete).not.toHaveBeenCalled();
|
66
|
-
expect(onError).toHaveBeenCalled();
|
67
77
|
});
|
68
78
|
describe("'From' number", () => {
|
69
79
|
const basePayload = (0, tests_1.generateTestPayload)({
|
@@ -77,6 +87,9 @@ describe('Send SMS (with from number) action', () => {
|
|
77
87
|
authToken: 'authToken',
|
78
88
|
fromNumber: '+19144542596',
|
79
89
|
messagingServiceSid: undefined,
|
90
|
+
addOptOutLanguage: undefined,
|
91
|
+
optOutLanguage: undefined,
|
92
|
+
language: undefined,
|
80
93
|
},
|
81
94
|
});
|
82
95
|
test('Should use one provided in action fields', async () => {
|
@@ -108,18 +121,9 @@ describe('Send SMS (with from number) action', () => {
|
|
108
121
|
from: undefined,
|
109
122
|
},
|
110
123
|
};
|
111
|
-
|
124
|
+
const resp = sendSms_1.sendSms.onActivityCreated(payloadWithoutFrom, onComplete, onError);
|
125
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
112
126
|
expect(onComplete).not.toHaveBeenCalled();
|
113
|
-
expect(onError).toHaveBeenCalledWith({
|
114
|
-
events: expect.arrayContaining([
|
115
|
-
expect.objectContaining({
|
116
|
-
error: {
|
117
|
-
category: 'BAD_REQUEST',
|
118
|
-
message: 'Validation error: "From" number is missing in both settings and in the action field.',
|
119
|
-
},
|
120
|
-
}),
|
121
|
-
]),
|
122
|
-
});
|
123
127
|
});
|
124
128
|
});
|
125
129
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendSms.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSms/sendSms.test.ts"],"names":[],"mappings":";;;;;AAAA,uCAAmC;AACnC,wEAAkD;AAClD,oDAA8D;
|
1
|
+
{"version":3,"file":"sendSms.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSms/sendSms.test.ts"],"names":[],"mappings":"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"}
|
package/dist/extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.js
CHANGED
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.sendSmsDuringBusinessHours = void 0;
|
7
7
|
const zod_1 = require("zod");
|
8
|
-
const zod_validation_error_1 = require("zod-validation-error");
|
9
8
|
const twilio_1 = __importDefault(require("../../../common/sdk/twilio"));
|
10
9
|
const extensions_core_1 = require("@awell-health/extensions-core");
|
11
10
|
const settings_1 = require("../../../settings");
|
@@ -13,6 +12,8 @@ const config_1 = require("./config");
|
|
13
12
|
const lodash_1 = require("lodash");
|
14
13
|
const getNextDateWithinBusinessHours_1 = require("../../../../../src/utils/getNextDateWithinBusinessHours");
|
15
14
|
const date_fns_1 = require("date-fns");
|
15
|
+
const lib_1 = require("../../../lib");
|
16
|
+
const errors_1 = require("../../../lib/errors");
|
16
17
|
exports.sendSmsDuringBusinessHours = {
|
17
18
|
key: 'sendSmsDuringBusinessHours',
|
18
19
|
title: 'Send SMS during business hours',
|
@@ -23,7 +24,7 @@ exports.sendSmsDuringBusinessHours = {
|
|
23
24
|
previewable: false,
|
24
25
|
onActivityCreated: async (payload, onComplete, onError) => {
|
25
26
|
try {
|
26
|
-
const { settings: { accountSid, authToken, messagingServiceSid: defaultMessagingServiceSid, }, fields: { recipient, message, messagingServiceSid, timeZone }, } = (0, extensions_core_1.validate)({
|
27
|
+
const { settings: { accountSid, authToken, messagingServiceSid: defaultMessagingServiceSid, addOptOutLanguage, optOutLanguage, language, }, fields: { recipient, message, messagingServiceSid, timeZone }, } = (0, extensions_core_1.validate)({
|
27
28
|
schema: zod_1.z
|
28
29
|
.object({
|
29
30
|
settings: settings_1.SettingsValidationSchema,
|
@@ -55,7 +56,9 @@ exports.sendSmsDuringBusinessHours = {
|
|
55
56
|
: (0, getNextDateWithinBusinessHours_1.getNextDateWithinBusinessHours)(now, tz);
|
56
57
|
const scheduled = isBetweenBusinessHours ? 'false' : 'true';
|
57
58
|
const res = await client.messages.create({
|
58
|
-
body:
|
59
|
+
body: addOptOutLanguage
|
60
|
+
? (0, lib_1.appendOptOutLanguage)(message, optOutLanguage, language)
|
61
|
+
: message,
|
59
62
|
messagingServiceSid: messagingServiceSid !== null && messagingServiceSid !== void 0 ? messagingServiceSid : defaultMessagingServiceSid,
|
60
63
|
to: recipient,
|
61
64
|
scheduleType,
|
@@ -65,40 +68,18 @@ exports.sendSmsDuringBusinessHours = {
|
|
65
68
|
data_points: {
|
66
69
|
messageSid: res.sid,
|
67
70
|
scheduled,
|
68
|
-
sendAt:
|
71
|
+
sendAt: sendAt != null ? (0, date_fns_1.formatISO)(sendAt) : (0, date_fns_1.formatISO)(now),
|
69
72
|
},
|
70
73
|
});
|
71
74
|
}
|
72
|
-
catch (
|
73
|
-
if (
|
74
|
-
const error = (0, zod_validation_error_1.fromZodError)(err);
|
75
|
+
catch (error) {
|
76
|
+
if ((0, errors_1.isTwilioErrorResponse)(error)) {
|
75
77
|
await onError({
|
76
|
-
events: [
|
77
|
-
{
|
78
|
-
date: new Date().toISOString(),
|
79
|
-
text: { en: error.message },
|
80
|
-
error: {
|
81
|
-
category: 'BAD_REQUEST',
|
82
|
-
message: error.message,
|
83
|
-
},
|
84
|
-
},
|
85
|
-
],
|
78
|
+
events: [(0, errors_1.parseTwilioError)(error)],
|
86
79
|
});
|
87
80
|
}
|
88
81
|
else {
|
89
|
-
|
90
|
-
await onError({
|
91
|
-
events: [
|
92
|
-
{
|
93
|
-
date: new Date().toISOString(),
|
94
|
-
text: { en: message },
|
95
|
-
error: {
|
96
|
-
category: 'SERVER_ERROR',
|
97
|
-
message,
|
98
|
-
},
|
99
|
-
},
|
100
|
-
],
|
101
|
-
});
|
82
|
+
throw error;
|
102
83
|
}
|
103
84
|
}
|
104
85
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendSmsDuringBusinessHours.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.ts"],"names":[],"mappings":";;;;;;AAAA,
|
1
|
+
{"version":3,"file":"sendSmsDuringBusinessHours.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.ts"],"names":[],"mappings":"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"}
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const sendSmsDuringBusinessHours_1 = require("./sendSmsDuringBusinessHours");
|
7
7
|
const twilio_1 = __importDefault(require("../../../common/sdk/twilio"));
|
8
8
|
const tests_1 = require("../../../../../src/tests");
|
9
|
+
const zod_1 = require("zod");
|
9
10
|
describe('Send SMS during business hours', () => {
|
10
11
|
const onComplete = jest.fn();
|
11
12
|
const onError = jest.fn();
|
@@ -33,6 +34,9 @@ describe('Send SMS during business hours', () => {
|
|
33
34
|
authToken: 'authToken',
|
34
35
|
fromNumber: '+19144542596',
|
35
36
|
messagingServiceSid: 'service-id-settings',
|
37
|
+
addOptOutLanguage: undefined,
|
38
|
+
optOutLanguage: undefined,
|
39
|
+
language: undefined,
|
36
40
|
},
|
37
41
|
}), onComplete, onError);
|
38
42
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -59,6 +63,9 @@ describe('Send SMS during business hours', () => {
|
|
59
63
|
authToken: 'authToken',
|
60
64
|
fromNumber: '+19144542596',
|
61
65
|
messagingServiceSid: 'service-id-settings',
|
66
|
+
addOptOutLanguage: undefined,
|
67
|
+
optOutLanguage: undefined,
|
68
|
+
language: undefined,
|
62
69
|
},
|
63
70
|
}), onComplete, onError);
|
64
71
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -85,6 +92,9 @@ describe('Send SMS during business hours', () => {
|
|
85
92
|
authToken: 'authToken',
|
86
93
|
fromNumber: '+19144542596',
|
87
94
|
messagingServiceSid: 'service-id-settings',
|
95
|
+
addOptOutLanguage: undefined,
|
96
|
+
optOutLanguage: undefined,
|
97
|
+
language: undefined,
|
88
98
|
},
|
89
99
|
}), onComplete, onError);
|
90
100
|
expect(onComplete).toHaveBeenCalledWith({
|
@@ -97,7 +107,7 @@ describe('Send SMS during business hours', () => {
|
|
97
107
|
expect(onError).not.toHaveBeenCalled();
|
98
108
|
});
|
99
109
|
test('Should call the onError callback when there is no recipient', async () => {
|
100
|
-
|
110
|
+
const resp = sendSmsDuringBusinessHours_1.sendSmsDuringBusinessHours.onActivityCreated((0, tests_1.generateTestPayload)({
|
101
111
|
fields: {
|
102
112
|
message: 'Message content',
|
103
113
|
recipient: '',
|
@@ -109,13 +119,16 @@ describe('Send SMS during business hours', () => {
|
|
109
119
|
authToken: 'authToken',
|
110
120
|
fromNumber: undefined,
|
111
121
|
messagingServiceSid: 'service-id-settings',
|
122
|
+
addOptOutLanguage: undefined,
|
123
|
+
optOutLanguage: undefined,
|
124
|
+
language: undefined,
|
112
125
|
},
|
113
126
|
}), onComplete, onError);
|
127
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
114
128
|
expect(onComplete).not.toHaveBeenCalled();
|
115
|
-
expect(onError).toHaveBeenCalled();
|
116
129
|
});
|
117
130
|
test('Should call the onError callback when there is no message', async () => {
|
118
|
-
|
131
|
+
const resp = sendSmsDuringBusinessHours_1.sendSmsDuringBusinessHours.onActivityCreated((0, tests_1.generateTestPayload)({
|
119
132
|
fields: {
|
120
133
|
message: '',
|
121
134
|
recipient: '+19144542596',
|
@@ -127,10 +140,13 @@ describe('Send SMS during business hours', () => {
|
|
127
140
|
authToken: 'authToken',
|
128
141
|
fromNumber: undefined,
|
129
142
|
messagingServiceSid: 'service-id-settings',
|
143
|
+
addOptOutLanguage: undefined,
|
144
|
+
optOutLanguage: undefined,
|
145
|
+
language: undefined,
|
130
146
|
},
|
131
147
|
}), onComplete, onError);
|
148
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
132
149
|
expect(onComplete).not.toHaveBeenCalled();
|
133
|
-
expect(onError).toHaveBeenCalled();
|
134
150
|
});
|
135
151
|
describe("'Messaging Service SID'", () => {
|
136
152
|
const basePayload = (0, tests_1.generateTestPayload)({
|
@@ -145,6 +161,9 @@ describe('Send SMS during business hours', () => {
|
|
145
161
|
authToken: 'authToken',
|
146
162
|
fromNumber: undefined,
|
147
163
|
messagingServiceSid: 'service-id-settings',
|
164
|
+
addOptOutLanguage: undefined,
|
165
|
+
optOutLanguage: undefined,
|
166
|
+
language: undefined,
|
148
167
|
},
|
149
168
|
});
|
150
169
|
test('Should use one provided in action fields', async () => {
|
@@ -180,18 +199,9 @@ describe('Send SMS during business hours', () => {
|
|
180
199
|
timeZone: undefined,
|
181
200
|
},
|
182
201
|
};
|
183
|
-
|
202
|
+
const resp = sendSmsDuringBusinessHours_1.sendSmsDuringBusinessHours.onActivityCreated(payloadWithoutFrom, onComplete, onError);
|
203
|
+
await expect(resp).rejects.toThrow(zod_1.ZodError);
|
184
204
|
expect(onComplete).not.toHaveBeenCalled();
|
185
|
-
expect(onError).toHaveBeenCalledWith({
|
186
|
-
events: expect.arrayContaining([
|
187
|
-
expect.objectContaining({
|
188
|
-
error: {
|
189
|
-
category: 'BAD_REQUEST',
|
190
|
-
message: 'Validation error: "Messaging Service SID" is missing in both settings and in the action field.',
|
191
|
-
},
|
192
|
-
}),
|
193
|
-
]),
|
194
|
-
});
|
195
205
|
});
|
196
206
|
});
|
197
207
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendSmsDuringBusinessHours.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.test.ts"],"names":[],"mappings":";;;;;AAAA,6EAAyE;AACzE,wEAAkD;AAClD,oDAA8D;
|
1
|
+
{"version":3,"file":"sendSmsDuringBusinessHours.test.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsDuringBusinessHours/sendSmsDuringBusinessHours.test.ts"],"names":[],"mappings":"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"}
|
package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.js
CHANGED
@@ -5,12 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.sendSmsWithMessagingService = void 0;
|
7
7
|
const zod_1 = require("zod");
|
8
|
-
const zod_validation_error_1 = require("zod-validation-error");
|
9
8
|
const twilio_1 = __importDefault(require("../../../common/sdk/twilio"));
|
10
9
|
const extensions_core_1 = require("@awell-health/extensions-core");
|
11
10
|
const settings_1 = require("../../../settings");
|
12
11
|
const config_1 = require("./config");
|
13
12
|
const lodash_1 = require("lodash");
|
13
|
+
const lib_1 = require("../../../lib");
|
14
|
+
const errors_1 = require("../../../lib/errors");
|
14
15
|
exports.sendSmsWithMessagingService = {
|
15
16
|
key: 'sendSmsWithMessagingService',
|
16
17
|
title: 'Send SMS (with Messaging Service)',
|
@@ -20,7 +21,7 @@ exports.sendSmsWithMessagingService = {
|
|
20
21
|
previewable: false,
|
21
22
|
onActivityCreated: async (payload, onComplete, onError) => {
|
22
23
|
try {
|
23
|
-
const { settings: { accountSid, authToken, messagingServiceSid: defaultMessagingServiceSid, }, fields: { recipient, message, messagingServiceSid }, } = (0, extensions_core_1.validate)({
|
24
|
+
const { settings: { accountSid, authToken, messagingServiceSid: defaultMessagingServiceSid, addOptOutLanguage, optOutLanguage, language, }, fields: { recipient, message, messagingServiceSid }, } = (0, extensions_core_1.validate)({
|
24
25
|
schema: zod_1.z
|
25
26
|
.object({
|
26
27
|
settings: settings_1.SettingsValidationSchema,
|
@@ -44,42 +45,22 @@ exports.sendSmsWithMessagingService = {
|
|
44
45
|
accountSid,
|
45
46
|
});
|
46
47
|
await client.messages.create({
|
47
|
-
body:
|
48
|
+
body: addOptOutLanguage
|
49
|
+
? (0, lib_1.appendOptOutLanguage)(message, optOutLanguage, language)
|
50
|
+
: message,
|
48
51
|
messagingServiceSid: messagingServiceSid !== null && messagingServiceSid !== void 0 ? messagingServiceSid : defaultMessagingServiceSid,
|
49
52
|
to: recipient,
|
50
53
|
});
|
51
54
|
await onComplete();
|
52
55
|
}
|
53
|
-
catch (
|
54
|
-
if (
|
55
|
-
const error = (0, zod_validation_error_1.fromZodError)(err);
|
56
|
+
catch (error) {
|
57
|
+
if ((0, errors_1.isTwilioErrorResponse)(error)) {
|
56
58
|
await onError({
|
57
|
-
events: [
|
58
|
-
{
|
59
|
-
date: new Date().toISOString(),
|
60
|
-
text: { en: error.message },
|
61
|
-
error: {
|
62
|
-
category: 'BAD_REQUEST',
|
63
|
-
message: error.message,
|
64
|
-
},
|
65
|
-
},
|
66
|
-
],
|
59
|
+
events: [(0, errors_1.parseTwilioError)(error)],
|
67
60
|
});
|
68
61
|
}
|
69
62
|
else {
|
70
|
-
|
71
|
-
await onError({
|
72
|
-
events: [
|
73
|
-
{
|
74
|
-
date: new Date().toISOString(),
|
75
|
-
text: { en: message },
|
76
|
-
error: {
|
77
|
-
category: 'SERVER_ERROR',
|
78
|
-
message,
|
79
|
-
},
|
80
|
-
},
|
81
|
-
],
|
82
|
-
});
|
63
|
+
throw error;
|
83
64
|
}
|
84
65
|
}
|
85
66
|
},
|
package/dist/extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendSmsWithMessagingService.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.ts"],"names":[],"mappings":";;;;;;AAAA,
|
1
|
+
{"version":3,"file":"sendSmsWithMessagingService.js","sourceRoot":"","sources":["../../../../../../extensions/twilio/v2/actions/sendSmsWithMessagingSid/sendSmsWithMessagingService.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAuB;AACvB,wEAAkD;AAGlD,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAyD;AACzD,mCAA8B;AAC9B,sCAAmD;AACnD,gDAA6E;AAEhE,QAAA,2BAA2B,GAGpC;IACF,GAAG,EAAE,6BAA6B;IAClC,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EACT,6EAA6E;IAC/E,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACxD,IAAI;YACF,MAAM,EACJ,QAAQ,EAAE,EACR,UAAU,EACV,SAAS,EACT,mBAAmB,EAAE,0BAA0B,EAC/C,iBAAiB,EACjB,cAAc,EACd,QAAQ,GACT,EACD,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,mBAAmB,EAAE,GACpD,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC;qBACN,MAAM,CAAC;oBACN,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;qBACD,WAAW,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;oBAC1B,8CAA8C;oBAC9C,IACE,IAAA,cAAK,EAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC;wBACzC,IAAA,cAAK,EAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,EACvC;wBACA,GAAG,CAAC,QAAQ,CAAC;4BACX,IAAI,EAAE,OAAC,CAAC,YAAY,CAAC,MAAM;4BAC3B,KAAK,EAAE,IAAI;4BACX,OAAO,EACL,8EAA8E;yBACjF,CAAC,CAAA;qBACH;gBACH,CAAC,CAAC;gBACJ,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,gBAAS,EAAC,UAAU,EAAE,SAAS,EAAE;gBAC9C,MAAM,EAAE,KAAK;gBACb,UAAU;aACX,CAAC,CAAA;YAEF,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,IAAI,EAAE,iBAAiB;oBACrB,CAAC,CAAC,IAAA,0BAAoB,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC;oBACzD,CAAC,CAAC,OAAO;gBACX,mBAAmB,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,0BAA0B;gBACtE,EAAE,EAAE,SAAS;aACd,CAAC,CAAA;YAEF,MAAM,UAAU,EAAE,CAAA;SACnB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,IAAA,8BAAqB,EAAC,KAAK,CAAC,EAAE;gBAChC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE,CAAC,IAAA,yBAAgB,EAAC,KAAK,CAAC,CAAC;iBAClC,CAAC,CAAA;aACH;iBAAM;gBACL,MAAM,KAAK,CAAA;aACZ;SACF;IACH,CAAC;CACF,CAAA"}
|