@awell-health/awell-extensions 2.0.196 → 2.0.198
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/elation/actions/checkPatientTags/checkPatientTags.d.ts +12 -0
- package/dist/extensions/elation/actions/checkPatientTags/checkPatientTags.js +63 -0
- package/dist/extensions/elation/actions/checkPatientTags/checkPatientTags.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/dataPoints.d.ts +10 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/dataPoints.js +14 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/dataPoints.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/fields.d.ts +28 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/fields.js +26 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/fields.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/index.d.ts +2 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/index.js +9 -0
- package/dist/extensions/elation/actions/checkPatientTags/config/index.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/index.d.ts +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/index.js +6 -0
- package/dist/extensions/elation/actions/checkPatientTags/index.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/checkTagsWithLLM.d.ts +13 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/checkTagsWithLLM.js +29 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/checkTagsWithLLM.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/parser.d.ts +23 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/parser.js +11 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/parser.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/prompt.d.ts +2 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/prompt.js +30 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/checkTagsWithLLM/prompt.js.map +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/evaluateCheckTags.d.ts +1 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/evaluateCheckTags.js +148 -0
- package/dist/extensions/elation/actions/checkPatientTags/lib/evaluateCheckTags.js.map +1 -0
- package/dist/extensions/elation/actions/index.d.ts +66 -0
- package/dist/extensions/elation/actions/index.js +2 -0
- package/dist/extensions/elation/actions/index.js.map +1 -1
- package/dist/extensions/index.js +2 -0
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/markdown.json +5 -1
- package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.d.ts +88 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.js +92 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/__testdata__/CreateCallBroadcast.mock.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/config.d.ts +254 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/config.js +166 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/config.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.d.ts +4 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.js +55 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/index.d.ts +1 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/index.js +18 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/index.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/types.d.ts +2 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/types.js +6 -0
- package/dist/extensions/text-em-all/actions/createCallBroadcast/types.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.d.ts +55 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.js +59 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.d.ts +82 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js +87 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/config.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.d.ts +4 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js +49 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/createSMSBroadcast.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.d.ts +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.js +18 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/index.js.map +1 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.d.ts +2 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.js +6 -0
- package/dist/extensions/text-em-all/actions/createSMSBroadcast/types.js.map +1 -0
- package/dist/extensions/text-em-all/actions/index.d.ts +69 -0
- package/dist/extensions/text-em-all/actions/index.js +9 -0
- package/dist/extensions/text-em-all/actions/index.js.map +1 -0
- package/dist/extensions/text-em-all/actions/types.d.ts +152 -0
- package/dist/extensions/text-em-all/actions/types.js +60 -0
- package/dist/extensions/text-em-all/actions/types.js.map +1 -0
- package/dist/extensions/text-em-all/actions/utils/validateJsonField.d.ts +2 -0
- package/dist/extensions/text-em-all/actions/utils/validateJsonField.js +32 -0
- package/dist/extensions/text-em-all/actions/utils/validateJsonField.js.map +1 -0
- package/dist/extensions/text-em-all/index.d.ts +2 -0
- package/dist/extensions/text-em-all/index.js +21 -0
- package/dist/extensions/text-em-all/index.js.map +1 -0
- package/dist/extensions/text-em-all/lib/client.d.ts +17 -0
- package/dist/extensions/text-em-all/lib/client.js +64 -0
- package/dist/extensions/text-em-all/lib/client.js.map +1 -0
- package/dist/extensions/text-em-all/lib/index.d.ts +1 -0
- package/dist/extensions/text-em-all/lib/index.js +18 -0
- package/dist/extensions/text-em-all/lib/index.js.map +1 -0
- package/dist/extensions/text-em-all/settings.d.ts +48 -0
- package/dist/extensions/text-em-all/settings.js +41 -0
- package/dist/extensions/text-em-all/settings.js.map +1 -0
- package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.d.ts +15 -0
- package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.js +42 -0
- package/dist/extensions/text-em-all/webhooks/broadcastStatusChange.js.map +1 -0
- package/dist/extensions/text-em-all/webhooks/index.d.ts +1 -0
- package/dist/extensions/text-em-all/webhooks/index.js +6 -0
- package/dist/extensions/text-em-all/webhooks/index.js.map +1 -0
- package/dist/extensions/text-em-all/webhooks/types.d.ts +24 -0
- package/dist/extensions/text-em-all/webhooks/types.js +15 -0
- package/dist/extensions/text-em-all/webhooks/types.js.map +1 -0
- package/package.json +4 -1
@@ -0,0 +1,166 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.FieldsSchema = exports.dataPoints = exports.fields = void 0;
|
7
|
+
const zod_1 = require("zod");
|
8
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
9
|
+
const types_1 = require("./types");
|
10
|
+
const types_2 = require("../types");
|
11
|
+
const validateJsonField_1 = require("../utils/validateJsonField");
|
12
|
+
const libphonenumber_js_1 = require("libphonenumber-js");
|
13
|
+
const format_1 = __importDefault(require("date-fns/format"));
|
14
|
+
const lodash_1 = require("lodash");
|
15
|
+
exports.fields = {
|
16
|
+
broadcastName: {
|
17
|
+
id: 'broadcastName',
|
18
|
+
label: 'Broadcast Name',
|
19
|
+
type: extensions_core_1.FieldType.STRING,
|
20
|
+
required: true,
|
21
|
+
description: 'The name of the broadcast.',
|
22
|
+
},
|
23
|
+
broadcastType: {
|
24
|
+
id: 'broadcastType',
|
25
|
+
label: 'Broadcast Type',
|
26
|
+
type: extensions_core_1.FieldType.STRING,
|
27
|
+
required: true,
|
28
|
+
description: 'The type of broadcast.',
|
29
|
+
options: {
|
30
|
+
dropdownOptions: Object.values(types_1.BroadcastTypes.enum).map((type) => ({
|
31
|
+
label: type,
|
32
|
+
value: type,
|
33
|
+
})),
|
34
|
+
},
|
35
|
+
},
|
36
|
+
startDate: {
|
37
|
+
id: 'startDate',
|
38
|
+
label: 'Start Date',
|
39
|
+
type: extensions_core_1.FieldType.STRING,
|
40
|
+
required: false,
|
41
|
+
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',
|
42
|
+
},
|
43
|
+
maxMessageLength: {
|
44
|
+
id: 'maxMessageLength',
|
45
|
+
label: 'Max Message Length',
|
46
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
47
|
+
required: false,
|
48
|
+
description: 'The maximum number of seconds the audio message can be. If not set, the value from your voice settings.',
|
49
|
+
},
|
50
|
+
callerID: {
|
51
|
+
id: 'callerID',
|
52
|
+
label: 'Caller ID',
|
53
|
+
type: extensions_core_1.FieldType.STRING,
|
54
|
+
required: false,
|
55
|
+
description: 'Voice messages will appear to be coming from this phone number. If left blank, we will default to the callerID in your voice settings. Must be a valid North American Numbering Plan (NANP) phone number.',
|
56
|
+
},
|
57
|
+
phoneNumber: {
|
58
|
+
id: 'phoneNumber',
|
59
|
+
label: 'Phone Number',
|
60
|
+
type: extensions_core_1.FieldType.STRING,
|
61
|
+
stringType: extensions_core_1.StringType.PHONE,
|
62
|
+
required: true,
|
63
|
+
description: 'The primary phone number of the recipient in E.164 format',
|
64
|
+
},
|
65
|
+
checkCallingWindow: {
|
66
|
+
id: 'checkCallingWindow',
|
67
|
+
label: 'Check Calling Window',
|
68
|
+
type: extensions_core_1.FieldType.BOOLEAN,
|
69
|
+
required: false,
|
70
|
+
description: 'Used for voice messages only and determines whether to enforce or ignore the user`s calling window. Defaults to True.',
|
71
|
+
},
|
72
|
+
continueOnNextDay: {
|
73
|
+
id: 'continueOnNextDay',
|
74
|
+
label: 'Continue On Next Day',
|
75
|
+
type: extensions_core_1.FieldType.BOOLEAN,
|
76
|
+
required: false,
|
77
|
+
description: 'Can override the "continue on next day" user setting.',
|
78
|
+
},
|
79
|
+
transferAndConnect: {
|
80
|
+
id: 'transferAndConnect',
|
81
|
+
label: 'Transfer and Connect',
|
82
|
+
type: extensions_core_1.FieldType.JSON,
|
83
|
+
required: false,
|
84
|
+
description: 'The settings for transfer & connect broadcasts. Only required for Transfer & Connect type broadcasts.',
|
85
|
+
},
|
86
|
+
audio: {
|
87
|
+
id: 'audio',
|
88
|
+
label: 'Audio',
|
89
|
+
type: extensions_core_1.FieldType.JSON,
|
90
|
+
required: false,
|
91
|
+
description: 'The assigned audio message for voice broadcasts. This ID can be found in your Message Library. If left blank you will receive a message recording information in your response.',
|
92
|
+
},
|
93
|
+
audioVM: {
|
94
|
+
id: 'audioVM',
|
95
|
+
label: 'Audio VM',
|
96
|
+
type: extensions_core_1.FieldType.JSON,
|
97
|
+
required: false,
|
98
|
+
description: 'This message plays if the contact`s message is left on the recipient`s voicemail.',
|
99
|
+
},
|
100
|
+
retryTimes: {
|
101
|
+
id: 'retryTimes',
|
102
|
+
label: 'Retry Times',
|
103
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
104
|
+
required: false,
|
105
|
+
description: 'The number of times a call is retried after busy signal or no answer. Defaults to retry settings in your account.',
|
106
|
+
},
|
107
|
+
callThrottle: {
|
108
|
+
id: 'callThrottle',
|
109
|
+
label: 'Call Throttle',
|
110
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
111
|
+
required: false,
|
112
|
+
description: 'The call speed specifies the number of simultaneous calls that can be ongoing at any given time. Defaults to call speed settings in your account.',
|
113
|
+
},
|
114
|
+
};
|
115
|
+
exports.dataPoints = {
|
116
|
+
broadcastId: {
|
117
|
+
key: 'broadcastId',
|
118
|
+
valueType: 'number',
|
119
|
+
},
|
120
|
+
broadcastStatus: {
|
121
|
+
key: 'broadcastStatus',
|
122
|
+
valueType: 'string',
|
123
|
+
},
|
124
|
+
uriBroadcastDetails: {
|
125
|
+
key: 'uriBroadcastDetails',
|
126
|
+
valueType: 'string',
|
127
|
+
},
|
128
|
+
broadcastStatusCategory: {
|
129
|
+
key: 'broadcastStatusCategory',
|
130
|
+
valueType: 'string',
|
131
|
+
},
|
132
|
+
broadcastStartDate: {
|
133
|
+
key: 'broadcastStartDate',
|
134
|
+
valueType: 'string',
|
135
|
+
},
|
136
|
+
};
|
137
|
+
exports.FieldsSchema = zod_1.z.object({
|
138
|
+
broadcastName: zod_1.z.string(),
|
139
|
+
broadcastType: types_1.BroadcastTypes,
|
140
|
+
startDate: extensions_core_1.DateTimeSchema.optional().transform((date) => {
|
141
|
+
if ((0, lodash_1.isNil)(date) || date === '')
|
142
|
+
return undefined;
|
143
|
+
// format is required: 2/1/2020 1:15PM',
|
144
|
+
return (0, format_1.default)(new Date(date), 'M/d/yyyy h:mmaa');
|
145
|
+
}),
|
146
|
+
maxMessageLength: zod_1.z.number().optional(),
|
147
|
+
callerID: zod_1.z.string().optional(),
|
148
|
+
phoneNumber: zod_1.z.string().transform((phone) => {
|
149
|
+
const parsedNumber = (0, libphonenumber_js_1.parsePhoneNumber)(phone);
|
150
|
+
return parsedNumber.format('NATIONAL'); // Returns "(XXX) XXX-XXXX" NANP format
|
151
|
+
}),
|
152
|
+
checkCallingWindow: zod_1.z.boolean().optional(),
|
153
|
+
continueOnNextDay: zod_1.z.boolean().optional(),
|
154
|
+
transferAndConnect: zod_1.z
|
155
|
+
.optional(zod_1.z.string())
|
156
|
+
.transform((0, validateJsonField_1.validateJsonField)(types_2.TransferSchema, 'Missing required transfer details fields. Required fields: transferNumber, transferMessage, transferDigit, transferIntroduction')),
|
157
|
+
audio: zod_1.z
|
158
|
+
.optional(zod_1.z.string())
|
159
|
+
.transform((0, validateJsonField_1.validateJsonField)(types_2.AudioSchema, 'Invalid audio details. Required fields: Uri, AudioID, Name, Description, Favorite, Shared, Length, MessageType, ReadOnly, Created, LastUsed, TextToSpeech, Text, Voice')),
|
160
|
+
audioVM: zod_1.z
|
161
|
+
.optional(zod_1.z.string())
|
162
|
+
.transform((0, validateJsonField_1.validateJsonField)(types_2.AudioSchema, 'Invalid audioVM details. Required fields: Uri, AudioID, Name, Description, Favorite, Shared, Length, MessageType, ReadOnly, Created, LastUsed, TextToSpeech, Text, Voice')),
|
163
|
+
retryTimes: zod_1.z.number().optional(),
|
164
|
+
callThrottle: zod_1.z.number().optional(),
|
165
|
+
});
|
166
|
+
//# sourceMappingURL=config.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/config.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createCallBroadcast = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
const config_1 = require("./config");
|
7
|
+
const settings_1 = require("../../settings");
|
8
|
+
const lib_1 = require("../../lib");
|
9
|
+
exports.createCallBroadcast = {
|
10
|
+
key: 'createCallBroadcast',
|
11
|
+
title: 'Send a new call broadcast',
|
12
|
+
description: 'A broadcast is a feature that allows you to initiate a call to a recipient at specific time',
|
13
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
14
|
+
fields: config_1.fields,
|
15
|
+
dataPoints: config_1.dataPoints,
|
16
|
+
previewable: false,
|
17
|
+
onEvent: async ({ payload, onComplete, onError, helpers }) => {
|
18
|
+
const { fields: { broadcastName: BroadcastName, broadcastType: BroadcastType, startDate: StartDate, callerID: CallerID, transferAndConnect: TransferAndConnect, audio: Audio, maxMessageLength: MaxMessageLength, retryTimes: RetryTimes, callThrottle: CallThrottle, checkCallingWindow: CheckCallingWindow, continueOnNextDay: ContinueOnNextDay, phoneNumber, }, settings, } = (0, extensions_core_1.validate)({
|
19
|
+
schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
|
20
|
+
payload,
|
21
|
+
});
|
22
|
+
const client = new lib_1.TextEmAllClient(settings);
|
23
|
+
const request = {
|
24
|
+
BroadcastName,
|
25
|
+
BroadcastType,
|
26
|
+
StartDate,
|
27
|
+
CallerID,
|
28
|
+
TransferAndConnect,
|
29
|
+
Audio,
|
30
|
+
MaxMessageLength,
|
31
|
+
RetryTimes,
|
32
|
+
CallThrottle,
|
33
|
+
CheckCallingWindow,
|
34
|
+
ContinueOnNextDay,
|
35
|
+
Contacts: [{ PrimaryPhone: phoneNumber }],
|
36
|
+
};
|
37
|
+
const { data } = await client.createBroadcast(request);
|
38
|
+
await onComplete({
|
39
|
+
events: [
|
40
|
+
{
|
41
|
+
date: new Date().toISOString(),
|
42
|
+
text: { en: `Broadcast created. Response: ${JSON.stringify(data)}` },
|
43
|
+
},
|
44
|
+
],
|
45
|
+
data_points: {
|
46
|
+
broadcastId: data.BroadcastID.toString(),
|
47
|
+
broadcastStatus: data.BroadcastStatus,
|
48
|
+
uriBroadcastDetails: data.UriBroadcastDetails,
|
49
|
+
broadcastStatusCategory: data.BroadcastStatusCategory,
|
50
|
+
broadcastStartDate: data.StartDate,
|
51
|
+
},
|
52
|
+
});
|
53
|
+
},
|
54
|
+
};
|
55
|
+
//# sourceMappingURL=createCallBroadcast.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"createCallBroadcast.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/createCallBroadcast.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AACvB,mEAA+E;AAC/E,qCAA2D;AAC3D,6CAA8D;AAC9D,mCAA2C;AAE9B,QAAA,mBAAmB,GAI5B;IACF,GAAG,EAAE,qBAAqB;IAC1B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,6FAA6F;IAC/F,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3D,MAAM,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,kBAAkB,EACtC,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,EAC1B,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,GACZ,EACD,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,QAAQ,EAAE,yBAAc,EAAE,CAAC;YACpE,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG;YACd,aAAa;YACb,aAAa;YACb,SAAS;YACT,QAAQ;YACR,kBAAkB;YAClB,KAAK;YACL,gBAAgB;YAChB,UAAU;YACV,YAAY;YACZ,kBAAkB;YAClB,iBAAiB;YACjB,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SAC1C,CAAA;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;iBACrE;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;gBACrD,kBAAkB,EAAE,IAAI,CAAC,SAAS;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;CAC+C,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './createCallBroadcast';
|
@@ -0,0 +1,18 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
|
+
};
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
+
__exportStar(require("./createCallBroadcast"), exports);
|
18
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../extensions/text-em-all/actions/createCallBroadcast/types.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAA"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
export declare const CreateSMSBroadcastMockResponse: {
|
2
|
+
status: number;
|
3
|
+
statusText: string;
|
4
|
+
headers: {
|
5
|
+
Location: string;
|
6
|
+
};
|
7
|
+
data: {
|
8
|
+
Uri: string;
|
9
|
+
UriBroadcastDetails: string;
|
10
|
+
BroadcastID: number;
|
11
|
+
BroadcastName: string;
|
12
|
+
BroadcastType: string;
|
13
|
+
BroadcastStatus: string;
|
14
|
+
BroadcastStatusCategory: string;
|
15
|
+
CreatedDate: string;
|
16
|
+
StartDate: string;
|
17
|
+
CompletedDate: null;
|
18
|
+
TextNumberID: string;
|
19
|
+
TextMessage: string;
|
20
|
+
CreditsUsed: null;
|
21
|
+
MaxCreditCost: number;
|
22
|
+
PhoneNumberCount: number;
|
23
|
+
TotalCompleted: number;
|
24
|
+
User: {
|
25
|
+
PinCode: null;
|
26
|
+
UserID: number;
|
27
|
+
UserName: null;
|
28
|
+
FirstName: null;
|
29
|
+
LastName: null;
|
30
|
+
Email: null;
|
31
|
+
Phone: null;
|
32
|
+
CallerID: null;
|
33
|
+
IsMasterUser: boolean;
|
34
|
+
AuthToken: null;
|
35
|
+
State: null;
|
36
|
+
Permissions: null;
|
37
|
+
};
|
38
|
+
RetryTimes: number;
|
39
|
+
CallThrottle: number;
|
40
|
+
LivePersonTotal: number;
|
41
|
+
AnsweringMachineTotal: number;
|
42
|
+
BusyNoAnswerTotal: number;
|
43
|
+
InvalidNumberTotal: number;
|
44
|
+
SurveyResponseTotal: number;
|
45
|
+
TransferTotal: number;
|
46
|
+
SurveyResponses: null;
|
47
|
+
MaxMessageLength: number;
|
48
|
+
MessageRecordingInstruction: null;
|
49
|
+
EstimatedDuration: number;
|
50
|
+
EstimatedCompletion: null;
|
51
|
+
ExcludedDaysIgnored: boolean;
|
52
|
+
CallingWindowIgnored: boolean;
|
53
|
+
NotEnoughTimeToComplete: boolean;
|
54
|
+
};
|
55
|
+
};
|
@@ -0,0 +1,59 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.CreateSMSBroadcastMockResponse = void 0;
|
4
|
+
exports.CreateSMSBroadcastMockResponse = {
|
5
|
+
status: 200,
|
6
|
+
statusText: 'OK',
|
7
|
+
headers: {
|
8
|
+
Location: 'https://staging-rest.call-em-all.com/v1/broadcasts',
|
9
|
+
},
|
10
|
+
data: {
|
11
|
+
Uri: '/v1/broadcasts/10006607',
|
12
|
+
UriBroadcastDetails: '/v1/broadcasts/10006607/details',
|
13
|
+
BroadcastID: 10006607,
|
14
|
+
BroadcastName: 'testBroadcast',
|
15
|
+
BroadcastType: 'SMS',
|
16
|
+
BroadcastStatus: 'AuthorizationApproved',
|
17
|
+
BroadcastStatusCategory: 'Scheduled',
|
18
|
+
CreatedDate: '2020-11-20 14:04:09-0600',
|
19
|
+
StartDate: '2025-01-02 13:15:00-0000',
|
20
|
+
CompletedDate: null,
|
21
|
+
TextNumberID: '2142960678',
|
22
|
+
TextMessage: 'This is a test text message. Please reply.',
|
23
|
+
CreditsUsed: null,
|
24
|
+
MaxCreditCost: 1,
|
25
|
+
PhoneNumberCount: 1,
|
26
|
+
TotalCompleted: 0,
|
27
|
+
User: {
|
28
|
+
PinCode: null,
|
29
|
+
UserID: 215790,
|
30
|
+
UserName: null,
|
31
|
+
FirstName: null,
|
32
|
+
LastName: null,
|
33
|
+
Email: null,
|
34
|
+
Phone: null,
|
35
|
+
CallerID: null,
|
36
|
+
IsMasterUser: false,
|
37
|
+
AuthToken: null,
|
38
|
+
State: null,
|
39
|
+
Permissions: null,
|
40
|
+
},
|
41
|
+
RetryTimes: 1,
|
42
|
+
CallThrottle: 0,
|
43
|
+
LivePersonTotal: 0,
|
44
|
+
AnsweringMachineTotal: 0,
|
45
|
+
BusyNoAnswerTotal: 0,
|
46
|
+
InvalidNumberTotal: 0,
|
47
|
+
SurveyResponseTotal: 0,
|
48
|
+
TransferTotal: 0,
|
49
|
+
SurveyResponses: null,
|
50
|
+
MaxMessageLength: 30,
|
51
|
+
MessageRecordingInstruction: null,
|
52
|
+
EstimatedDuration: 0,
|
53
|
+
EstimatedCompletion: null,
|
54
|
+
ExcludedDaysIgnored: false,
|
55
|
+
CallingWindowIgnored: false,
|
56
|
+
NotEnoughTimeToComplete: false,
|
57
|
+
},
|
58
|
+
};
|
59
|
+
//# sourceMappingURL=CreateSMSBroadcast.mock.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CreateSMSBroadcast.mock.js","sourceRoot":"","sources":["../../../../../../extensions/text-em-all/actions/createSMSBroadcast/__testdata__/CreateSMSBroadcast.mock.ts"],"names":[],"mappings":";;;AAEa,QAAA,8BAA8B,GAAG;IAC5C,MAAM,EAAE,GAAG;IACX,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE;QACP,QAAQ,EAAE,oDAAoD;KAC/D;IACD,IAAI,EAAE;QACJ,GAAG,EAAE,yBAAyB;QAC9B,mBAAmB,EAAE,iCAAiC;QACtD,WAAW,EAAE,QAAQ;QACrB,aAAa,EAAE,eAAe;QAC9B,aAAa,EAAE,KAAK;QACpB,eAAe,EAAE,uBAAuB;QACxC,uBAAuB,EAAE,WAAW;QACpC,WAAW,EAAE,0BAA0B;QACvC,SAAS,EAAE,0BAA0B;QACrC,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,YAAY;QAC1B,WAAW,EAAE,4CAA4C;QACzD,WAAW,EAAE,IAAI;QACjB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,IAAI;YACX,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,IAAI;YACd,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI;YACX,WAAW,EAAE,IAAI;SAClB;QACD,UAAU,EAAE,CAAC;QACb,YAAY,EAAE,CAAC;QACf,eAAe,EAAE,CAAC;QAClB,qBAAqB,EAAE,CAAC;QACxB,iBAAiB,EAAE,CAAC;QACpB,kBAAkB,EAAE,CAAC;QACrB,mBAAmB,EAAE,CAAC;QACtB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,EAAE;QACpB,2BAA2B,EAAE,IAAI;QACjC,iBAAiB,EAAE,CAAC;QACpB,mBAAmB,EAAE,IAAI;QACzB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,uBAAuB,EAAE,KAAK;KAC/B;CAC+B,CAAA"}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
import { FieldType, StringType } from '@awell-health/extensions-core';
|
3
|
+
export declare const fields: {
|
4
|
+
broadcastName: {
|
5
|
+
id: string;
|
6
|
+
label: string;
|
7
|
+
type: FieldType.STRING;
|
8
|
+
required: true;
|
9
|
+
description: string;
|
10
|
+
};
|
11
|
+
phoneNumber: {
|
12
|
+
id: string;
|
13
|
+
label: string;
|
14
|
+
type: FieldType.STRING;
|
15
|
+
stringType: StringType.PHONE;
|
16
|
+
required: true;
|
17
|
+
description: string;
|
18
|
+
};
|
19
|
+
textMessage: {
|
20
|
+
id: string;
|
21
|
+
label: string;
|
22
|
+
type: FieldType.TEXT;
|
23
|
+
required: true;
|
24
|
+
description: string;
|
25
|
+
};
|
26
|
+
textNumberID: {
|
27
|
+
id: string;
|
28
|
+
label: string;
|
29
|
+
type: FieldType.NUMERIC;
|
30
|
+
required: false;
|
31
|
+
description: string;
|
32
|
+
};
|
33
|
+
startDate: {
|
34
|
+
id: string;
|
35
|
+
label: string;
|
36
|
+
type: FieldType.DATE;
|
37
|
+
required: false;
|
38
|
+
description: string;
|
39
|
+
};
|
40
|
+
};
|
41
|
+
export declare const dataPoints: {
|
42
|
+
broadcastId: {
|
43
|
+
key: string;
|
44
|
+
valueType: "number";
|
45
|
+
};
|
46
|
+
broadcastStatus: {
|
47
|
+
key: string;
|
48
|
+
valueType: "string";
|
49
|
+
};
|
50
|
+
uriBroadcastDetails: {
|
51
|
+
key: string;
|
52
|
+
valueType: "string";
|
53
|
+
};
|
54
|
+
broadcastStatusCategory: {
|
55
|
+
key: string;
|
56
|
+
valueType: "string";
|
57
|
+
};
|
58
|
+
broadcastStartDate: {
|
59
|
+
key: string;
|
60
|
+
valueType: "string";
|
61
|
+
};
|
62
|
+
};
|
63
|
+
export declare const FieldsSchema: z.ZodObject<{
|
64
|
+
broadcastName: z.ZodString;
|
65
|
+
phoneNumber: z.ZodEffects<z.ZodString, string, string>;
|
66
|
+
textMessage: z.ZodString;
|
67
|
+
textNumberID: z.ZodOptional<z.ZodNumber>;
|
68
|
+
startDate: z.ZodEffects<z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>, string | undefined, Date | undefined>;
|
69
|
+
}, "strip", z.ZodTypeAny, {
|
70
|
+
phoneNumber: string;
|
71
|
+
broadcastName: string;
|
72
|
+
textMessage: string;
|
73
|
+
startDate?: string | undefined;
|
74
|
+
textNumberID?: number | undefined;
|
75
|
+
}, {
|
76
|
+
phoneNumber: string;
|
77
|
+
broadcastName: string;
|
78
|
+
textMessage: string;
|
79
|
+
startDate?: Date | undefined;
|
80
|
+
textNumberID?: number | undefined;
|
81
|
+
}>;
|
82
|
+
export type ActionFields = z.infer<typeof FieldsSchema>;
|
@@ -0,0 +1,87 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.FieldsSchema = exports.dataPoints = exports.fields = void 0;
|
7
|
+
const zod_1 = require("zod");
|
8
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
9
|
+
const libphonenumber_js_1 = require("libphonenumber-js");
|
10
|
+
const lodash_1 = require("lodash");
|
11
|
+
const format_1 = __importDefault(require("date-fns/format"));
|
12
|
+
exports.fields = {
|
13
|
+
broadcastName: {
|
14
|
+
id: 'broadcastName',
|
15
|
+
label: 'Broadcast Name',
|
16
|
+
type: extensions_core_1.FieldType.STRING,
|
17
|
+
required: true,
|
18
|
+
description: 'The name of the broadcast.',
|
19
|
+
},
|
20
|
+
phoneNumber: {
|
21
|
+
id: 'phoneNumber',
|
22
|
+
label: 'Phone Number',
|
23
|
+
type: extensions_core_1.FieldType.STRING,
|
24
|
+
stringType: extensions_core_1.StringType.PHONE,
|
25
|
+
required: true,
|
26
|
+
description: 'The primary phone number of the recipient. Must be a valid North American Numbering Plan (NANP) phone number.',
|
27
|
+
},
|
28
|
+
textMessage: {
|
29
|
+
id: 'textMessage',
|
30
|
+
label: 'Text Message',
|
31
|
+
type: extensions_core_1.FieldType.TEXT,
|
32
|
+
required: true,
|
33
|
+
description: 'The text of the message for a text type broadcast. The max length is based on the setting in your account.',
|
34
|
+
},
|
35
|
+
textNumberID: {
|
36
|
+
id: 'textNumberID',
|
37
|
+
label: 'Text Number ID',
|
38
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
39
|
+
required: false,
|
40
|
+
description: 'The ID of the text number your messages will be sent from. If omitted, the default text number on your account will be used.',
|
41
|
+
},
|
42
|
+
startDate: {
|
43
|
+
id: 'startDate',
|
44
|
+
label: 'Start Date',
|
45
|
+
type: extensions_core_1.FieldType.DATE,
|
46
|
+
required: false,
|
47
|
+
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
|
+
},
|
49
|
+
};
|
50
|
+
exports.dataPoints = {
|
51
|
+
broadcastId: {
|
52
|
+
key: 'broadcastId',
|
53
|
+
valueType: 'number',
|
54
|
+
},
|
55
|
+
broadcastStatus: {
|
56
|
+
key: 'broadcastStatus',
|
57
|
+
valueType: 'string',
|
58
|
+
},
|
59
|
+
uriBroadcastDetails: {
|
60
|
+
key: 'uriBroadcastDetails',
|
61
|
+
valueType: 'string',
|
62
|
+
},
|
63
|
+
broadcastStatusCategory: {
|
64
|
+
key: 'broadcastStatusCategory',
|
65
|
+
valueType: 'string',
|
66
|
+
},
|
67
|
+
broadcastStartDate: {
|
68
|
+
key: 'broadcastStartDate',
|
69
|
+
valueType: 'string',
|
70
|
+
},
|
71
|
+
};
|
72
|
+
exports.FieldsSchema = zod_1.z.object({
|
73
|
+
broadcastName: zod_1.z.string(),
|
74
|
+
phoneNumber: zod_1.z.string().transform((phone) => {
|
75
|
+
const parsedNumber = (0, libphonenumber_js_1.parsePhoneNumber)(phone);
|
76
|
+
return parsedNumber.format('NATIONAL'); // Returns "(XXX) XXX-XXXX" NANP format
|
77
|
+
}),
|
78
|
+
textMessage: zod_1.z.string(),
|
79
|
+
textNumberID: zod_1.z.number().optional(),
|
80
|
+
startDate: extensions_core_1.DateTimeSchema.optional().transform((date) => {
|
81
|
+
if ((0, lodash_1.isNil)(date) || date === '')
|
82
|
+
return undefined;
|
83
|
+
// format is required: 2/1/2020 1:15PM',
|
84
|
+
return (0, format_1.default)(new Date(date), 'M/d/yyyy h:mmaa');
|
85
|
+
}),
|
86
|
+
});
|
87
|
+
//# sourceMappingURL=config.js.map
|
@@ -0,0 +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,EACT,+GAA+G;KAClH;IACD,WAAW,EAAE;QACX,EAAE,EAAE,aAAa;QACjB,KAAK,EAAE,cAAc;QACrB,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,4GAA4G;KAC/G;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,gBAAgB;QACvB,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,8HAA8H;KACjI;IACD,SAAS,EAAE;QACT,EAAE,EAAE,WAAW;QACf,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,+JAA+J;KAClK;CACe,CAAA;AAEL,QAAA,UAAU,GAAG;IACxB,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,mBAAmB,EAAE;QACnB,GAAG,EAAE,qBAAqB;QAC1B,SAAS,EAAE,QAAQ;KACpB;IACD,uBAAuB,EAAE;QACvB,GAAG,EAAE,yBAAyB;QAC9B,SAAS,EAAE,QAAQ;KACpB;IACD,kBAAkB,EAAE;QAClB,GAAG,EAAE,oBAAoB;QACzB,SAAS,EAAE,QAAQ;KACpB;CAC4C,CAAA;AAElC,QAAA,YAAY,GAAG,OAAC,CAAC,MAAM,CAAC;IACnC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE;IACzB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QAC1C,MAAM,YAAY,GAAG,IAAA,oCAAgB,EAAC,KAAK,CAAC,CAAA;QAC5C,OAAO,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA,CAAC,uCAAuC;IAChF,CAAC,CAAC;IACF,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE;IACvB,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,gCAAc,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE;QACtD,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,IAAI,KAAK,EAAE;YAAE,OAAO,SAAS,CAAA;QAChD,wCAAwC;QACxC,OAAO,IAAA,gBAAM,EAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,CAAA;IAClD,CAAC,CAAC;CACH,CAAC,CAAA"}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createSMSBroadcast = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
const config_1 = require("./config");
|
7
|
+
const settings_1 = require("../../settings");
|
8
|
+
const lib_1 = require("../../lib");
|
9
|
+
exports.createSMSBroadcast = {
|
10
|
+
key: 'createSMSBroadcast',
|
11
|
+
title: 'Send a new SMS broadcast',
|
12
|
+
description: 'A broadcast is a feature that allows you to send a text message to a recipient at specific time',
|
13
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
14
|
+
fields: config_1.fields,
|
15
|
+
dataPoints: config_1.dataPoints,
|
16
|
+
previewable: false,
|
17
|
+
onEvent: async ({ payload, onComplete, onError, helpers }) => {
|
18
|
+
const { fields: { broadcastName: BroadcastName, phoneNumber, textMessage: TextMessage, textNumberID: TextNumberID, startDate: StartDate, }, settings, } = (0, extensions_core_1.validate)({
|
19
|
+
schema: zod_1.z.object({ fields: config_1.FieldsSchema, settings: settings_1.SettingsSchema }),
|
20
|
+
payload,
|
21
|
+
});
|
22
|
+
const client = new lib_1.TextEmAllClient(settings);
|
23
|
+
const request = {
|
24
|
+
BroadcastName,
|
25
|
+
BroadcastType: 'SMS',
|
26
|
+
TextMessage,
|
27
|
+
TextNumberID,
|
28
|
+
StartDate,
|
29
|
+
Contacts: [{ PrimaryPhone: phoneNumber }],
|
30
|
+
};
|
31
|
+
const { data } = await client.createBroadcast(request);
|
32
|
+
await onComplete({
|
33
|
+
events: [
|
34
|
+
{
|
35
|
+
date: new Date().toISOString(),
|
36
|
+
text: { en: `Broadcast created. Response: ${JSON.stringify(data)}` },
|
37
|
+
},
|
38
|
+
],
|
39
|
+
data_points: {
|
40
|
+
broadcastId: data.BroadcastID.toString(),
|
41
|
+
broadcastStatus: data.BroadcastStatus,
|
42
|
+
uriBroadcastDetails: data.UriBroadcastDetails,
|
43
|
+
broadcastStatusCategory: data.BroadcastStatusCategory,
|
44
|
+
broadcastStartDate: data.StartDate,
|
45
|
+
},
|
46
|
+
});
|
47
|
+
},
|
48
|
+
};
|
49
|
+
//# sourceMappingURL=createSMSBroadcast.js.map
|
@@ -0,0 +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,qCAA2D;AAC3D,6CAA8D;AAC9D,mCAA2C;AAE9B,QAAA,kBAAkB,GAI3B;IACF,GAAG,EAAE,oBAAoB;IACzB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,iGAAiG;IACnG,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,MAAM,EACJ,MAAM,EAAE,EACN,aAAa,EAAE,aAAa,EAC5B,WAAW,EACX,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,GACrB,EACD,QAAQ,GACT,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,qBAAY,EAAE,QAAQ,EAAE,yBAAc,EAAE,CAAC;YACpE,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,IAAI,qBAAe,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG;YACd,aAAa;YACb,aAAa,EAAE,KAAK;YACpB,WAAW;YACX,YAAY;YACZ,SAAS;YACT,QAAQ,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;SAC1C,CAAA;QAED,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QACtD,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,gCAAgC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,EAAE;iBACrE;aACF;YACD,WAAW,EAAE;gBACX,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;gBACxC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;gBACrD,kBAAkB,EAAE,IAAI,CAAC,SAAS;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;CAC+C,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './createSMSBroadcast';
|