@awell-health/awell-extensions 2.1.91 → 2.1.92
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/dist/extensions/text-em-all/actions/createCallBroadcast/config.d.ts +2 -2
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.d.ts +95 -4
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js +68 -7
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js.map +1 -1
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js +83 -20
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js.map +1 -1
- package/dist/extensions/text-em-all/actions/index.d.ts +36 -1
- package/package.json +1 -1
|
@@ -184,9 +184,9 @@ export declare const FieldsSchema: z.ZodObject<{
|
|
|
184
184
|
broadcastName: string;
|
|
185
185
|
broadcastType: "Announcement" | "Survey";
|
|
186
186
|
startDate?: string | undefined;
|
|
187
|
+
checkCallingWindow?: boolean | undefined;
|
|
187
188
|
maxMessageLength?: number | undefined;
|
|
188
189
|
callerID?: string | undefined;
|
|
189
|
-
checkCallingWindow?: boolean | undefined;
|
|
190
190
|
continueOnNextDay?: boolean | undefined;
|
|
191
191
|
transferAndConnect?: {
|
|
192
192
|
transferNumber: string;
|
|
@@ -241,9 +241,9 @@ export declare const FieldsSchema: z.ZodObject<{
|
|
|
241
241
|
broadcastName: string;
|
|
242
242
|
broadcastType: "Announcement" | "Survey";
|
|
243
243
|
startDate?: Date | undefined;
|
|
244
|
+
checkCallingWindow?: boolean | undefined;
|
|
244
245
|
maxMessageLength?: number | undefined;
|
|
245
246
|
callerID?: string | undefined;
|
|
246
|
-
checkCallingWindow?: boolean | undefined;
|
|
247
247
|
continueOnNextDay?: boolean | undefined;
|
|
248
248
|
transferAndConnect?: string | undefined;
|
|
249
249
|
audio?: string | undefined;
|
|
@@ -13,7 +13,35 @@ export declare const fields: {
|
|
|
13
13
|
label: string;
|
|
14
14
|
type: FieldType.STRING;
|
|
15
15
|
stringType: StringType.PHONE;
|
|
16
|
-
required:
|
|
16
|
+
required: false;
|
|
17
|
+
description: string;
|
|
18
|
+
};
|
|
19
|
+
firstName: {
|
|
20
|
+
id: string;
|
|
21
|
+
label: string;
|
|
22
|
+
type: FieldType.STRING;
|
|
23
|
+
required: false;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
lastName: {
|
|
27
|
+
id: string;
|
|
28
|
+
label: string;
|
|
29
|
+
type: FieldType.STRING;
|
|
30
|
+
required: false;
|
|
31
|
+
description: string;
|
|
32
|
+
};
|
|
33
|
+
notes: {
|
|
34
|
+
id: string;
|
|
35
|
+
label: string;
|
|
36
|
+
type: FieldType.STRING;
|
|
37
|
+
required: false;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
integrationData: {
|
|
41
|
+
id: string;
|
|
42
|
+
label: string;
|
|
43
|
+
type: FieldType.STRING;
|
|
44
|
+
required: false;
|
|
17
45
|
description: string;
|
|
18
46
|
};
|
|
19
47
|
textMessage: {
|
|
@@ -37,6 +65,13 @@ export declare const fields: {
|
|
|
37
65
|
required: false;
|
|
38
66
|
description: string;
|
|
39
67
|
};
|
|
68
|
+
checkCallingWindow: {
|
|
69
|
+
id: string;
|
|
70
|
+
label: string;
|
|
71
|
+
type: FieldType.BOOLEAN;
|
|
72
|
+
required: false;
|
|
73
|
+
description: string;
|
|
74
|
+
};
|
|
40
75
|
};
|
|
41
76
|
/**
|
|
42
77
|
* Result types for SMS broadcast creation.
|
|
@@ -99,23 +134,79 @@ export declare const dataPoints: {
|
|
|
99
134
|
valueType: "string";
|
|
100
135
|
};
|
|
101
136
|
};
|
|
137
|
+
/** Schema for raw field extraction (no transforms, just type checking) */
|
|
102
138
|
export declare const FieldsSchema: z.ZodObject<{
|
|
139
|
+
broadcastName: z.ZodString;
|
|
140
|
+
phoneNumber: z.ZodOptional<z.ZodString>;
|
|
141
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
142
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
143
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
144
|
+
integrationData: z.ZodOptional<z.ZodString>;
|
|
145
|
+
textMessage: z.ZodString;
|
|
146
|
+
textNumberID: z.ZodOptional<z.ZodNumber>;
|
|
147
|
+
startDate: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
|
|
148
|
+
checkCallingWindow: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
149
|
+
}, "strip", z.ZodTypeAny, {
|
|
150
|
+
broadcastName: string;
|
|
151
|
+
textMessage: string;
|
|
152
|
+
checkCallingWindow: boolean;
|
|
153
|
+
firstName?: string | undefined;
|
|
154
|
+
lastName?: string | undefined;
|
|
155
|
+
phoneNumber?: string | undefined;
|
|
156
|
+
notes?: string | undefined;
|
|
157
|
+
startDate?: string | undefined;
|
|
158
|
+
integrationData?: string | undefined;
|
|
159
|
+
textNumberID?: number | undefined;
|
|
160
|
+
}, {
|
|
161
|
+
broadcastName: string;
|
|
162
|
+
textMessage: string;
|
|
163
|
+
firstName?: string | undefined;
|
|
164
|
+
lastName?: string | undefined;
|
|
165
|
+
phoneNumber?: string | undefined;
|
|
166
|
+
notes?: string | undefined;
|
|
167
|
+
startDate?: Date | undefined;
|
|
168
|
+
integrationData?: string | undefined;
|
|
169
|
+
textNumberID?: number | undefined;
|
|
170
|
+
checkCallingWindow?: boolean | undefined;
|
|
171
|
+
}>;
|
|
172
|
+
export type ActionFields = z.infer<typeof FieldsSchema>;
|
|
173
|
+
/**
|
|
174
|
+
* Schema for the final resolved broadcast input — after patient profile
|
|
175
|
+
* fallbacks have been applied. This is where all transforms and
|
|
176
|
+
* required-field checks live so everything is validated in one pass.
|
|
177
|
+
*/
|
|
178
|
+
export declare const BroadcastInputSchema: z.ZodObject<{
|
|
103
179
|
broadcastName: z.ZodString;
|
|
104
180
|
phoneNumber: z.ZodEffects<z.ZodString, string, string>;
|
|
181
|
+
firstName: z.ZodOptional<z.ZodString>;
|
|
182
|
+
lastName: z.ZodOptional<z.ZodString>;
|
|
183
|
+
notes: z.ZodOptional<z.ZodString>;
|
|
184
|
+
integrationData: z.ZodOptional<z.ZodString>;
|
|
105
185
|
textMessage: z.ZodString;
|
|
106
186
|
textNumberID: z.ZodOptional<z.ZodNumber>;
|
|
107
|
-
startDate: z.ZodEffects<z.ZodOptional<z.
|
|
187
|
+
startDate: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
|
|
188
|
+
checkCallingWindow: z.ZodBoolean;
|
|
108
189
|
}, "strip", z.ZodTypeAny, {
|
|
109
190
|
phoneNumber: string;
|
|
110
191
|
broadcastName: string;
|
|
111
192
|
textMessage: string;
|
|
193
|
+
checkCallingWindow: boolean;
|
|
194
|
+
firstName?: string | undefined;
|
|
195
|
+
lastName?: string | undefined;
|
|
196
|
+
notes?: string | undefined;
|
|
112
197
|
startDate?: string | undefined;
|
|
198
|
+
integrationData?: string | undefined;
|
|
113
199
|
textNumberID?: number | undefined;
|
|
114
200
|
}, {
|
|
115
201
|
phoneNumber: string;
|
|
116
202
|
broadcastName: string;
|
|
117
203
|
textMessage: string;
|
|
118
|
-
|
|
204
|
+
checkCallingWindow: boolean;
|
|
205
|
+
firstName?: string | undefined;
|
|
206
|
+
lastName?: string | undefined;
|
|
207
|
+
notes?: string | undefined;
|
|
208
|
+
startDate?: string | undefined;
|
|
209
|
+
integrationData?: string | undefined;
|
|
119
210
|
textNumberID?: number | undefined;
|
|
120
211
|
}>;
|
|
121
|
-
export type
|
|
212
|
+
export type BroadcastInput = z.infer<typeof BroadcastInputSchema>;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.FieldsSchema = exports.dataPoints = exports.DeliveryResultType = exports.fields = void 0;
|
|
6
|
+
exports.BroadcastInputSchema = exports.FieldsSchema = exports.dataPoints = exports.DeliveryResultType = exports.fields = void 0;
|
|
7
7
|
const zod_1 = require("zod");
|
|
8
8
|
const extensions_core_1 = require("@awell-health/extensions-core");
|
|
9
9
|
const libphonenumber_js_1 = require("libphonenumber-js");
|
|
@@ -22,8 +22,36 @@ exports.fields = {
|
|
|
22
22
|
label: 'Phone Number',
|
|
23
23
|
type: extensions_core_1.FieldType.STRING,
|
|
24
24
|
stringType: extensions_core_1.StringType.PHONE,
|
|
25
|
-
required:
|
|
26
|
-
description: 'The primary phone number of the recipient. Must be a valid
|
|
25
|
+
required: false,
|
|
26
|
+
description: 'The primary phone number of the recipient. Must be a valid NANP phone number. If omitted, falls back to the patient mobile phone from their profile.',
|
|
27
|
+
},
|
|
28
|
+
firstName: {
|
|
29
|
+
id: 'firstName',
|
|
30
|
+
label: 'First Name',
|
|
31
|
+
type: extensions_core_1.FieldType.STRING,
|
|
32
|
+
required: false,
|
|
33
|
+
description: 'The first name of the contact. If omitted, falls back to the patient first name from their profile.',
|
|
34
|
+
},
|
|
35
|
+
lastName: {
|
|
36
|
+
id: 'lastName',
|
|
37
|
+
label: 'Last Name',
|
|
38
|
+
type: extensions_core_1.FieldType.STRING,
|
|
39
|
+
required: false,
|
|
40
|
+
description: 'The last name of the contact. If omitted, falls back to the patient last name from their profile.',
|
|
41
|
+
},
|
|
42
|
+
notes: {
|
|
43
|
+
id: 'notes',
|
|
44
|
+
label: 'Notes',
|
|
45
|
+
type: extensions_core_1.FieldType.STRING,
|
|
46
|
+
required: false,
|
|
47
|
+
description: 'Notes about the contact (e.g., "Eligibility form from Awell").',
|
|
48
|
+
},
|
|
49
|
+
integrationData: {
|
|
50
|
+
id: 'integrationData',
|
|
51
|
+
label: 'Integration Data',
|
|
52
|
+
type: extensions_core_1.FieldType.STRING,
|
|
53
|
+
required: false,
|
|
54
|
+
description: 'Extra field for integration information.',
|
|
27
55
|
},
|
|
28
56
|
textMessage: {
|
|
29
57
|
id: 'textMessage',
|
|
@@ -46,6 +74,13 @@ exports.fields = {
|
|
|
46
74
|
required: false,
|
|
47
75
|
description: 'The time the broadcast should start. Will default to start immediately. If provided must be a datetime as ISO 8601 string and time to send the message in UTC',
|
|
48
76
|
},
|
|
77
|
+
checkCallingWindow: {
|
|
78
|
+
id: 'checkCallingWindow',
|
|
79
|
+
label: 'Check Calling Window',
|
|
80
|
+
type: extensions_core_1.FieldType.BOOLEAN,
|
|
81
|
+
required: false,
|
|
82
|
+
description: 'Whether to enforce the calling window restrictions. Defaults to false.',
|
|
83
|
+
},
|
|
49
84
|
};
|
|
50
85
|
/**
|
|
51
86
|
* Result types for SMS broadcast creation.
|
|
@@ -107,19 +142,45 @@ exports.dataPoints = {
|
|
|
107
142
|
valueType: 'string',
|
|
108
143
|
},
|
|
109
144
|
};
|
|
145
|
+
/** Schema for raw field extraction (no transforms, just type checking) */
|
|
110
146
|
exports.FieldsSchema = zod_1.z.object({
|
|
147
|
+
broadcastName: zod_1.z.string(),
|
|
148
|
+
phoneNumber: zod_1.z.string().optional(),
|
|
149
|
+
firstName: zod_1.z.string().optional(),
|
|
150
|
+
lastName: zod_1.z.string().optional(),
|
|
151
|
+
notes: zod_1.z.string().optional(),
|
|
152
|
+
integrationData: zod_1.z.string().optional(),
|
|
153
|
+
textMessage: zod_1.z.string(),
|
|
154
|
+
textNumberID: zod_1.z.number().optional(),
|
|
155
|
+
startDate: extensions_core_1.DateTimeSchema.optional(),
|
|
156
|
+
checkCallingWindow: zod_1.z.boolean().optional().default(false),
|
|
157
|
+
});
|
|
158
|
+
/**
|
|
159
|
+
* Schema for the final resolved broadcast input — after patient profile
|
|
160
|
+
* fallbacks have been applied. This is where all transforms and
|
|
161
|
+
* required-field checks live so everything is validated in one pass.
|
|
162
|
+
*/
|
|
163
|
+
exports.BroadcastInputSchema = zod_1.z.object({
|
|
111
164
|
broadcastName: zod_1.z.string(),
|
|
112
165
|
phoneNumber: zod_1.z.string().transform((phone) => {
|
|
113
|
-
const
|
|
114
|
-
return
|
|
166
|
+
const parsed = (0, libphonenumber_js_1.parsePhoneNumber)(phone);
|
|
167
|
+
return parsed.format('NATIONAL'); // "(XXX) XXX-XXXX" NANP format
|
|
115
168
|
}),
|
|
169
|
+
firstName: zod_1.z.string().optional(),
|
|
170
|
+
lastName: zod_1.z.string().optional(),
|
|
171
|
+
notes: zod_1.z.string().optional(),
|
|
172
|
+
integrationData: zod_1.z.string().optional(),
|
|
116
173
|
textMessage: zod_1.z.string(),
|
|
117
174
|
textNumberID: zod_1.z.number().optional(),
|
|
118
|
-
startDate:
|
|
175
|
+
startDate: zod_1.z
|
|
176
|
+
.string()
|
|
177
|
+
.optional()
|
|
178
|
+
.transform((date) => {
|
|
119
179
|
if ((0, lodash_1.isNil)(date) || date === '')
|
|
120
180
|
return undefined;
|
|
121
|
-
// format
|
|
181
|
+
// format required by Text-Em-All: '2/1/2020 1:15PM'
|
|
122
182
|
return (0, format_1.default)(new Date(date), 'M/d/yyyy h:mmaa');
|
|
123
183
|
}),
|
|
184
|
+
checkCallingWindow: zod_1.z.boolean(),
|
|
124
185
|
});
|
|
125
186
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/config.ts"],"names":[],"mappings":";;;;;;AAAA,6BAAuB;AAEvB,mEAMsC;AACtC,yDAAoD;AACpD,mCAA8B;AAC9B,6DAAoC;AAEvB,QAAA,MAAM,GAAG;IACpB,aAAa,EAAE;QACb,EAAE,EAAE,eAAe;QACnB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,4BAA4B;KAC1C;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,KAAK;QAC5B,QAAQ,EAAE,IAAI;QACd,WAAW,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ const extensions_core_1 = require("@awell-health/extensions-core");
|
|
|
6
6
|
const config_1 = require("./config");
|
|
7
7
|
const settings_1 = require("../../settings");
|
|
8
8
|
const lib_1 = require("../../lib");
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
9
10
|
/**
|
|
10
11
|
* Known Text-Em-All error codes and their meanings.
|
|
11
12
|
*/
|
|
@@ -16,14 +17,13 @@ const ERROR_CODES = {
|
|
|
16
17
|
* Determines the delivery result based on an error response.
|
|
17
18
|
*/
|
|
18
19
|
function getResultFromError(errorCode, errorName, message) {
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
if (errorCode === ERROR_CODES.NO_VALID_CONTACTS ||
|
|
21
|
+
errorName === 'NoValidBroadcastContacts') {
|
|
21
22
|
return {
|
|
22
23
|
result: config_1.DeliveryResultType.INVALID_NUMBER,
|
|
23
24
|
details: message !== null && message !== void 0 ? message : 'Phone number is invalid or recipient cannot receive text messages',
|
|
24
25
|
};
|
|
25
26
|
}
|
|
26
|
-
// Default for unknown errors
|
|
27
27
|
return {
|
|
28
28
|
result: config_1.DeliveryResultType.FAILED,
|
|
29
29
|
details: message !== null && message !== void 0 ? message : 'Broadcast creation failed',
|
|
@@ -37,20 +37,88 @@ exports.createSMSBroadcast = {
|
|
|
37
37
|
fields: config_1.fields,
|
|
38
38
|
dataPoints: config_1.dataPoints,
|
|
39
39
|
previewable: true,
|
|
40
|
-
onEvent: async ({ payload, onComplete, onError }) => {
|
|
41
|
-
|
|
40
|
+
onEvent: async ({ payload, onComplete, onError, helpers: { log }, }) => {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
// Step 1: Extract raw field values and settings
|
|
43
|
+
const { fields: rawFields, settings } = (0, extensions_core_1.validate)({
|
|
42
44
|
schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
|
|
43
45
|
payload,
|
|
44
46
|
});
|
|
45
|
-
const
|
|
47
|
+
const patientProfile = (_a = payload.patient) === null || _a === void 0 ? void 0 : _a.profile;
|
|
48
|
+
// Step 2: Resolve values — fields take priority, patient profile is fallback
|
|
49
|
+
let phoneNumber = rawFields.phoneNumber;
|
|
50
|
+
if ((0, lodash_1.isEmpty)(phoneNumber)) {
|
|
51
|
+
phoneNumber =
|
|
52
|
+
(_b = patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.mobile_phone) !== null && _b !== void 0 ? _b : patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.phone;
|
|
53
|
+
if ((0, lodash_1.isEmpty)(phoneNumber)) {
|
|
54
|
+
await onError({
|
|
55
|
+
events: [
|
|
56
|
+
{
|
|
57
|
+
date: new Date().toISOString(),
|
|
58
|
+
text: {
|
|
59
|
+
en: 'No phone number provided and no mobile phone found on patient profile.',
|
|
60
|
+
},
|
|
61
|
+
error: {
|
|
62
|
+
category: 'WRONG_INPUT',
|
|
63
|
+
message: 'No phone number provided and no mobile phone found on patient profile',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
});
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
log({ source: 'patient_profile', field: 'mobile_phone' }, 'Phone number not provided — using patient profile mobile phone');
|
|
71
|
+
}
|
|
72
|
+
let firstName = rawFields.firstName;
|
|
73
|
+
if ((0, lodash_1.isEmpty)(firstName) && !(0, lodash_1.isEmpty)(patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.first_name)) {
|
|
74
|
+
firstName = patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.first_name;
|
|
75
|
+
log({ source: 'patient_profile', field: 'first_name' }, 'First name not provided — using patient profile first name');
|
|
76
|
+
}
|
|
77
|
+
let lastName = rawFields.lastName;
|
|
78
|
+
if ((0, lodash_1.isEmpty)(lastName) && !(0, lodash_1.isEmpty)(patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.last_name)) {
|
|
79
|
+
lastName = patientProfile === null || patientProfile === void 0 ? void 0 : patientProfile.last_name;
|
|
80
|
+
log({ source: 'patient_profile', field: 'last_name' }, 'Last name not provided — using patient profile last name');
|
|
81
|
+
}
|
|
82
|
+
// Step 3: Validate the resolved input (NANP phone format, date transform, etc.)
|
|
83
|
+
const input = config_1.BroadcastInputSchema.parse({
|
|
84
|
+
broadcastName: rawFields.broadcastName,
|
|
85
|
+
phoneNumber,
|
|
86
|
+
firstName,
|
|
87
|
+
lastName,
|
|
88
|
+
notes: rawFields.notes,
|
|
89
|
+
integrationData: rawFields.integrationData,
|
|
90
|
+
textMessage: rawFields.textMessage,
|
|
91
|
+
textNumberID: rawFields.textNumberID,
|
|
92
|
+
startDate: rawFields.startDate,
|
|
93
|
+
checkCallingWindow: rawFields.checkCallingWindow,
|
|
94
|
+
});
|
|
95
|
+
// Step 4: Build the API request
|
|
96
|
+
const contact = {
|
|
97
|
+
PrimaryPhone: input.phoneNumber,
|
|
98
|
+
};
|
|
99
|
+
if (!(0, lodash_1.isEmpty)(input.firstName)) {
|
|
100
|
+
contact.FirstName = input.firstName;
|
|
101
|
+
}
|
|
102
|
+
if (!(0, lodash_1.isEmpty)(input.lastName)) {
|
|
103
|
+
contact.LastName = input.lastName;
|
|
104
|
+
}
|
|
105
|
+
if (!(0, lodash_1.isEmpty)(input.notes)) {
|
|
106
|
+
contact.Notes = input.notes;
|
|
107
|
+
}
|
|
108
|
+
if (!(0, lodash_1.isEmpty)(input.integrationData)) {
|
|
109
|
+
contact.IntegrationData = input.integrationData;
|
|
110
|
+
}
|
|
46
111
|
const request = {
|
|
47
|
-
BroadcastName,
|
|
112
|
+
BroadcastName: input.broadcastName,
|
|
48
113
|
BroadcastType: 'SMS',
|
|
49
|
-
TextMessage,
|
|
50
|
-
TextNumberID,
|
|
51
|
-
StartDate,
|
|
52
|
-
|
|
114
|
+
TextMessage: input.textMessage,
|
|
115
|
+
TextNumberID: input.textNumberID,
|
|
116
|
+
StartDate: input.startDate,
|
|
117
|
+
CheckCallingWindow: input.checkCallingWindow,
|
|
118
|
+
Contacts: [contact],
|
|
53
119
|
};
|
|
120
|
+
// Step 5: Send to Text-Em-All
|
|
121
|
+
const client = new lib_1.TextEmAllClient(settings);
|
|
54
122
|
const resp = await client.createBroadcast(request);
|
|
55
123
|
const data = resp.data;
|
|
56
124
|
// Success - broadcast created
|
|
@@ -59,9 +127,7 @@ exports.createSMSBroadcast = {
|
|
|
59
127
|
events: [
|
|
60
128
|
{
|
|
61
129
|
date: new Date().toISOString(),
|
|
62
|
-
text: {
|
|
63
|
-
en: `SMS broadcast created successfully`,
|
|
64
|
-
},
|
|
130
|
+
text: { en: 'SMS broadcast created successfully' },
|
|
65
131
|
},
|
|
66
132
|
],
|
|
67
133
|
data_points: {
|
|
@@ -77,7 +143,7 @@ exports.createSMSBroadcast = {
|
|
|
77
143
|
});
|
|
78
144
|
return;
|
|
79
145
|
}
|
|
80
|
-
//
|
|
146
|
+
// Rate limiting (429) — transient, retry may help
|
|
81
147
|
if (resp.status === 429) {
|
|
82
148
|
await onError({
|
|
83
149
|
events: [
|
|
@@ -93,18 +159,15 @@ exports.createSMSBroadcast = {
|
|
|
93
159
|
});
|
|
94
160
|
return;
|
|
95
161
|
}
|
|
96
|
-
//
|
|
162
|
+
// API errors (400, etc.) — valid triage data, not a retry candidate
|
|
97
163
|
if ('ErrorCode' in data || 'ErrorName' in data || 'Message' in data) {
|
|
98
164
|
const errorData = data;
|
|
99
165
|
const { result, details } = getResultFromError(errorData.ErrorCode, errorData.ErrorName, errorData.Message);
|
|
100
|
-
// Return as success with the error result - this is valid triage data
|
|
101
166
|
await onComplete({
|
|
102
167
|
events: [
|
|
103
168
|
{
|
|
104
169
|
date: new Date().toISOString(),
|
|
105
|
-
text: {
|
|
106
|
-
en: `SMS broadcast result: ${result} - ${details}`,
|
|
107
|
-
},
|
|
170
|
+
text: { en: `SMS broadcast result: ${result} - ${details}` },
|
|
108
171
|
},
|
|
109
172
|
],
|
|
110
173
|
data_points: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSMSBroadcast.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,
|
|
1
|
+
{"version":3,"file":"createSMSBroadcast.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,35 @@ export declare const actions: {
|
|
|
12
12
|
label: string;
|
|
13
13
|
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
14
14
|
stringType: import("@awell-health/extensions-core").StringType.PHONE;
|
|
15
|
-
required:
|
|
15
|
+
required: false;
|
|
16
|
+
description: string;
|
|
17
|
+
};
|
|
18
|
+
firstName: {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
22
|
+
required: false;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
lastName: {
|
|
26
|
+
id: string;
|
|
27
|
+
label: string;
|
|
28
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
29
|
+
required: false;
|
|
30
|
+
description: string;
|
|
31
|
+
};
|
|
32
|
+
notes: {
|
|
33
|
+
id: string;
|
|
34
|
+
label: string;
|
|
35
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
36
|
+
required: false;
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
integrationData: {
|
|
40
|
+
id: string;
|
|
41
|
+
label: string;
|
|
42
|
+
type: import("@awell-health/extensions-core").FieldType.STRING;
|
|
43
|
+
required: false;
|
|
16
44
|
description: string;
|
|
17
45
|
};
|
|
18
46
|
textMessage: {
|
|
@@ -36,6 +64,13 @@ export declare const actions: {
|
|
|
36
64
|
required: false;
|
|
37
65
|
description: string;
|
|
38
66
|
};
|
|
67
|
+
checkCallingWindow: {
|
|
68
|
+
id: string;
|
|
69
|
+
label: string;
|
|
70
|
+
type: import("@awell-health/extensions-core").FieldType.BOOLEAN;
|
|
71
|
+
required: false;
|
|
72
|
+
description: string;
|
|
73
|
+
};
|
|
39
74
|
}, {
|
|
40
75
|
customerKey: {
|
|
41
76
|
label: string;
|