@awell-health/awell-extensions 1.0.131 → 1.0.132
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/calendly/types.d.ts +2 -0
- package/dist/extensions/calendly/webhooks/eventCreated.d.ts +10 -2
- package/dist/extensions/calendly/webhooks/eventCreated.js +14 -6
- package/dist/extensions/calendly/webhooks/eventCreated.js.map +1 -1
- package/dist/extensions/calendly/webhooks/eventRescheduled.d.ts +10 -2
- package/dist/extensions/calendly/webhooks/eventRescheduled.js +14 -6
- package/dist/extensions/calendly/webhooks/eventRescheduled.js.map +1 -1
- package/dist/extensions/healthie/actions/sendChatMessage/sendChatMessage.js +42 -1
- package/dist/extensions/healthie/actions/sendChatMessage/sendChatMessage.js.map +1 -1
- package/package.json +1 -1
@@ -7,6 +7,7 @@ export interface CalendlyWebhookPayload {
|
|
7
7
|
created_at: string;
|
8
8
|
payload: {
|
9
9
|
scheduled_event: {
|
10
|
+
text_reminder_number: string;
|
10
11
|
start_time: string;
|
11
12
|
end_time: string;
|
12
13
|
uri: string;
|
@@ -16,6 +17,7 @@ export interface CalendlyWebhookPayload {
|
|
16
17
|
user_email: string;
|
17
18
|
}>;
|
18
19
|
location: any;
|
20
|
+
name: string;
|
19
21
|
};
|
20
22
|
email: string;
|
21
23
|
first_name: string;
|
@@ -39,11 +39,11 @@ declare const dataPoints: {
|
|
39
39
|
};
|
40
40
|
startTime: {
|
41
41
|
key: string;
|
42
|
-
valueType: "
|
42
|
+
valueType: "date";
|
43
43
|
};
|
44
44
|
endTime: {
|
45
45
|
key: string;
|
46
|
-
valueType: "
|
46
|
+
valueType: "date";
|
47
47
|
};
|
48
48
|
cancelUrl: {
|
49
49
|
key: string;
|
@@ -57,6 +57,14 @@ declare const dataPoints: {
|
|
57
57
|
key: string;
|
58
58
|
valueType: "string";
|
59
59
|
};
|
60
|
+
eventName: {
|
61
|
+
key: string;
|
62
|
+
valueType: "string";
|
63
|
+
};
|
64
|
+
inviteePhoneNumber: {
|
65
|
+
key: string;
|
66
|
+
valueType: "string";
|
67
|
+
};
|
60
68
|
};
|
61
69
|
export declare const eventCreated: Webhook<keyof typeof dataPoints, CalendlyWebhookPayload>;
|
62
70
|
export type EventCreated = typeof eventCreated;
|
@@ -41,11 +41,11 @@ const dataPoints = {
|
|
41
41
|
},
|
42
42
|
startTime: {
|
43
43
|
key: 'startTime',
|
44
|
-
valueType: '
|
44
|
+
valueType: 'date',
|
45
45
|
},
|
46
46
|
endTime: {
|
47
47
|
key: 'endTime',
|
48
|
-
valueType: '
|
48
|
+
valueType: 'date',
|
49
49
|
},
|
50
50
|
cancelUrl: {
|
51
51
|
key: 'cancelUrl',
|
@@ -59,11 +59,20 @@ const dataPoints = {
|
|
59
59
|
key: 'videoCallUrl',
|
60
60
|
valueType: 'string',
|
61
61
|
},
|
62
|
+
eventName: {
|
63
|
+
key: 'eventName',
|
64
|
+
valueType: 'string',
|
65
|
+
},
|
66
|
+
inviteePhoneNumber: {
|
67
|
+
key: 'inviteePhoneNumber',
|
68
|
+
valueType: 'string',
|
69
|
+
}
|
62
70
|
};
|
63
71
|
exports.eventCreated = {
|
64
72
|
key: 'eventCreated',
|
65
73
|
dataPoints,
|
66
74
|
onWebhookReceived: async ({ payload }, onSuccess, onError) => {
|
75
|
+
var _a, _b;
|
67
76
|
const { payload: { email, first_name, last_name, name, scheduled_event, status, timezone, cancel_url, reschedule_url, rescheduled, }, } = payload;
|
68
77
|
// https://api.calendly.com/scheduled_events/GBGBDCAADAEDCRZ2 => GBGBDCAADAEDCRZ2
|
69
78
|
const scheduledEventId = scheduled_event.uri.split('/').pop();
|
@@ -71,9 +80,6 @@ exports.eventCreated = {
|
|
71
80
|
const hostEmail = scheduled_event.event_memberships.length > 0
|
72
81
|
? scheduled_event.event_memberships[0].user_email
|
73
82
|
: '';
|
74
|
-
const videoCallUrl = scheduled_event.location.type === 'zoom'
|
75
|
-
? scheduled_event.location.join_url
|
76
|
-
: '';
|
77
83
|
if (!(0, lodash_1.isNil)(scheduledEventId) &&
|
78
84
|
!(0, lodash_1.isNil)(scheduledEventTypeId) &&
|
79
85
|
!rescheduled) {
|
@@ -92,7 +98,9 @@ exports.eventCreated = {
|
|
92
98
|
cancelUrl: cancel_url,
|
93
99
|
rescheduleUrl: reschedule_url,
|
94
100
|
hostEmail,
|
95
|
-
videoCallUrl,
|
101
|
+
videoCallUrl: (_a = scheduled_event.location.join_url) !== null && _a !== void 0 ? _a : "",
|
102
|
+
inviteePhoneNumber: (_b = scheduled_event.text_reminder_number) !== null && _b !== void 0 ? _b : "",
|
103
|
+
eventName: scheduled_event.name
|
96
104
|
},
|
97
105
|
});
|
98
106
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eventCreated.js","sourceRoot":"","sources":["../../../../extensions/calendly/webhooks/eventCreated.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAO9B,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,QAAQ;KACpB;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,
|
1
|
+
{"version":3,"file":"eventCreated.js","sourceRoot":"","sources":["../../../../extensions/calendly/webhooks/eventCreated.ts"],"names":[],"mappings":"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"}
|
@@ -39,11 +39,11 @@ declare const dataPoints: {
|
|
39
39
|
};
|
40
40
|
startTime: {
|
41
41
|
key: string;
|
42
|
-
valueType: "
|
42
|
+
valueType: "date";
|
43
43
|
};
|
44
44
|
endTime: {
|
45
45
|
key: string;
|
46
|
-
valueType: "
|
46
|
+
valueType: "date";
|
47
47
|
};
|
48
48
|
cancelUrl: {
|
49
49
|
key: string;
|
@@ -57,6 +57,14 @@ declare const dataPoints: {
|
|
57
57
|
key: string;
|
58
58
|
valueType: "string";
|
59
59
|
};
|
60
|
+
eventName: {
|
61
|
+
key: string;
|
62
|
+
valueType: "string";
|
63
|
+
};
|
64
|
+
inviteePhoneNumber: {
|
65
|
+
key: string;
|
66
|
+
valueType: "string";
|
67
|
+
};
|
60
68
|
};
|
61
69
|
export declare const eventRescheduled: Webhook<keyof typeof dataPoints, CalendlyWebhookPayload>;
|
62
70
|
export type EventRescheduled = typeof eventRescheduled;
|
@@ -41,11 +41,11 @@ const dataPoints = {
|
|
41
41
|
},
|
42
42
|
startTime: {
|
43
43
|
key: 'startTime',
|
44
|
-
valueType: '
|
44
|
+
valueType: 'date',
|
45
45
|
},
|
46
46
|
endTime: {
|
47
47
|
key: 'endTime',
|
48
|
-
valueType: '
|
48
|
+
valueType: 'date',
|
49
49
|
},
|
50
50
|
cancelUrl: {
|
51
51
|
key: 'cancelUrl',
|
@@ -59,11 +59,20 @@ const dataPoints = {
|
|
59
59
|
key: 'videoCallUrl',
|
60
60
|
valueType: 'string',
|
61
61
|
},
|
62
|
+
eventName: {
|
63
|
+
key: 'eventName',
|
64
|
+
valueType: 'string',
|
65
|
+
},
|
66
|
+
inviteePhoneNumber: {
|
67
|
+
key: 'inviteePhoneNumber',
|
68
|
+
valueType: 'string',
|
69
|
+
}
|
62
70
|
};
|
63
71
|
exports.eventRescheduled = {
|
64
72
|
key: 'eventRescheduled',
|
65
73
|
dataPoints,
|
66
74
|
onWebhookReceived: async ({ payload }, onSuccess, onError) => {
|
75
|
+
var _a, _b;
|
67
76
|
const { payload: { email, first_name, last_name, name, scheduled_event, status, timezone, cancel_url, reschedule_url, rescheduled, }, } = payload;
|
68
77
|
if (rescheduled) {
|
69
78
|
// https://api.calendly.com/scheduled_events/GBGBDCAADAEDCRZ2 => GBGBDCAADAEDCRZ2
|
@@ -72,9 +81,6 @@ exports.eventRescheduled = {
|
|
72
81
|
const hostEmail = scheduled_event.event_memberships.length > 0
|
73
82
|
? scheduled_event.event_memberships[0].user_email
|
74
83
|
: '';
|
75
|
-
const videoCallUrl = scheduled_event.location.type === 'zoom'
|
76
|
-
? scheduled_event.location.join_url
|
77
|
-
: '';
|
78
84
|
if (!(0, lodash_1.isNil)(scheduledEventId) &&
|
79
85
|
!(0, lodash_1.isNil)(scheduledEventTypeId) &&
|
80
86
|
rescheduled) {
|
@@ -93,7 +99,9 @@ exports.eventRescheduled = {
|
|
93
99
|
cancelUrl: cancel_url,
|
94
100
|
rescheduleUrl: reschedule_url,
|
95
101
|
hostEmail,
|
96
|
-
videoCallUrl,
|
102
|
+
videoCallUrl: (_a = scheduled_event.location.join_url) !== null && _a !== void 0 ? _a : "",
|
103
|
+
inviteePhoneNumber: (_b = scheduled_event.text_reminder_number) !== null && _b !== void 0 ? _b : "",
|
104
|
+
eventName: scheduled_event.name
|
97
105
|
},
|
98
106
|
});
|
99
107
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eventRescheduled.js","sourceRoot":"","sources":["../../../../extensions/calendly/webhooks/eventRescheduled.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAO9B,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,QAAQ;KACpB;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,eAAe,EAAE;QACf,GAAG,EAAE,iBAAiB;QACtB,SAAS,EAAE,QAAQ;KACpB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,
|
1
|
+
{"version":3,"file":"eventRescheduled.js","sourceRoot":"","sources":["../../../../extensions/calendly/webhooks/eventRescheduled.ts"],"names":[],"mappings":"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"}
|
@@ -35,14 +35,48 @@ exports.sendChatMessage = {
|
|
35
35
|
});
|
36
36
|
return;
|
37
37
|
}
|
38
|
+
if (provider_id === undefined) {
|
39
|
+
await onError({
|
40
|
+
events: [
|
41
|
+
{
|
42
|
+
date: new Date().toISOString(),
|
43
|
+
text: { en: 'Fields are missing' },
|
44
|
+
error: {
|
45
|
+
category: 'MISSING_FIELDS',
|
46
|
+
message: '`provider_id` is missing',
|
47
|
+
},
|
48
|
+
},
|
49
|
+
],
|
50
|
+
});
|
51
|
+
return;
|
52
|
+
}
|
38
53
|
const client = (0, graphqlClient_1.initialiseClient)(settings);
|
39
54
|
if (client !== undefined) {
|
40
55
|
const sdk = (0, sdk_1.getSdk)(client);
|
56
|
+
// The logic is as follows:
|
57
|
+
// 1. Get all conversations for the patient (by patient id)
|
58
|
+
// 2. Find the conversation that has the specified provider / current user as a member
|
59
|
+
// 3. If no conversation exists, create a new one including the patient and owned by the specified provider / current user
|
60
|
+
// 4. Send the (cleaned up) message to the conversation
|
61
|
+
// Questions:
|
62
|
+
// 1. What if the patient has multiple conversations with the same provider? -> We find the first conversation
|
63
|
+
// that matches the required conversation participants, so this is not deterministic
|
64
|
+
// 2. What is the dietitian id? -> This is provider_id, they are the same; dietitian_id is the old name
|
41
65
|
const createConversation = async () => {
|
42
66
|
var _a;
|
43
67
|
const { data } = await sdk.createConversation({
|
44
|
-
|
68
|
+
/**
|
69
|
+
* Send the message in name of the specified provider.
|
70
|
+
* If empty or blank, it defaults to the current user.
|
71
|
+
* https://docs.gethealthie.com/docs/#createconversation-mutation
|
72
|
+
*/
|
45
73
|
simple_added_users: `user-${healthie_patient_id}`,
|
74
|
+
owner_id: provider_id,
|
75
|
+
// These are deprecated fields to account for how Healthie conversation lookup logic works for when
|
76
|
+
// a patient is (re)assigned a provider and Healthie automatically creates a new conversation between them
|
77
|
+
// @ts-expect-error these deprecated fields are not in the schema but are still supported
|
78
|
+
dietitian_id: provider_id,
|
79
|
+
patient_id: healthie_patient_id,
|
46
80
|
});
|
47
81
|
return (_a = data.createConversation) === null || _a === void 0 ? void 0 : _a.conversation;
|
48
82
|
};
|
@@ -80,6 +114,13 @@ exports.sendChatMessage = {
|
|
80
114
|
},
|
81
115
|
});
|
82
116
|
};
|
117
|
+
/**
|
118
|
+
* First checks if the conversation exists, if not, creates it.
|
119
|
+
* To check for existing conversation, it looks for an active, individual conversation
|
120
|
+
* that the patient and provider are both members of. If provider_id is not specified,
|
121
|
+
* it defaults to the current user.
|
122
|
+
* @returns The conversation object
|
123
|
+
*/
|
83
124
|
const getConversation = async () => {
|
84
125
|
var _a, _b;
|
85
126
|
const { data } = await sdk.getConversationList({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sendChatMessage.js","sourceRoot":"","sources":["../../../../../extensions/healthie/actions/sendChatMessage/sendChatMessage.ts"],"names":[],"mappings":";;;AAAA,mCAA8B;AAC9B,qCAA6C;AAE7C,mEAAwD;AACxD,uCAAsC;AACtC,uDAAsD;AAGtD,yCAAwE;AACxE,qCAA6C;AAEhC,QAAA,eAAe,GAIxB;IACF,GAAG,EAAE,iBAAiB;IACtB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,+CAA+C;IAC5D,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,IAAI;IACjB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAiB,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QACpC,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;QAC5D,IAAI;YACF,IAAI,mBAAmB,KAAK,SAAS,EAAE;gBACrC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE;4BAClC,KAAK,EAAE;gCACL,QAAQ,EAAE,gBAAgB;gCAC1B,OAAO,EAAE,kCAAkC;6BAC5C;yBACF;qBACF;iBACF,CAAC,CAAA;gBACF,OAAM;aACP;YAED,MAAM,MAAM,GAAG,IAAA,gCAAgB,EAAC,QAAQ,CAAC,CAAA;YACzC,IAAI,MAAM,KAAK,SAAS,EAAE;gBACxB,MAAM,GAAG,GAAG,IAAA,YAAM,EAAC,MAAM,CAAC,CAAA;gBAE1B,MAAM,kBAAkB,GAAG,KAAK,IAA2B,EAAE;;oBAC3D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC;wBAC5C,QAAQ,EAAE,WAAW;wBACrB,
|
1
|
+
{"version":3,"file":"sendChatMessage.js","sourceRoot":"","sources":["../../../../../extensions/healthie/actions/sendChatMessage/sendChatMessage.ts"],"names":[],"mappings":"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"}
|