@awell-health/awell-extensions 2.0.227 → 2.0.228
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/webhooks/appointmentCreatedOrUpdated.js +6 -5
- package/dist/extensions/elation/webhooks/appointmentCreatedOrUpdated.js.map +1 -1
- package/dist/extensions/elation/webhooks/patientCreatedOrUpdated.js +6 -5
- package/dist/extensions/elation/webhooks/patientCreatedOrUpdated.js.map +1 -1
- package/package.json +2 -2
@@ -17,7 +17,8 @@ const dataPoints = {
|
|
17
17
|
exports.appointmentCreatedOrUpdated = {
|
18
18
|
key: 'appointmentCreatedOrUpdated',
|
19
19
|
dataPoints,
|
20
|
-
onEvent: async ({ payload: { payload, settings }, onSuccess, onError, helpers: { rateLimiter }, }) => {
|
20
|
+
onEvent: async ({ payload: { payload, settings, endpoint }, onSuccess, onError, helpers: { rateLimiter }, }) => {
|
21
|
+
var _a, _b;
|
21
22
|
const { action, resource, data } = payload;
|
22
23
|
const { id: appointmentId, patient: patientId } = data;
|
23
24
|
// skip non 'saved' actions for that webhook
|
@@ -26,23 +27,23 @@ exports.appointmentCreatedOrUpdated = {
|
|
26
27
|
}
|
27
28
|
// rate limiting
|
28
29
|
const { success, data: durationString } = settings_1.rateLimitDurationSchema.safeParse(settings.rateLimitDuration);
|
29
|
-
if (success
|
30
|
+
if (success && !(0, lodash_1.isNil)(durationString)) {
|
30
31
|
const duration = (0, settings_1.transformRateLimitDuration)(durationString);
|
31
32
|
const limiter = rateLimiter('elation-appointment', {
|
32
33
|
requests: 1,
|
33
34
|
duration,
|
34
35
|
});
|
35
|
-
const
|
36
|
+
const key = `${(_a = endpoint === null || endpoint === void 0 ? void 0 : endpoint.id) !== null && _a !== void 0 ? _a : 'global'}-${appointmentId}`;
|
37
|
+
const { success } = await limiter.limit(key);
|
36
38
|
if (!success) {
|
37
39
|
await onError({
|
38
40
|
response: {
|
39
41
|
statusCode: 200,
|
40
|
-
message:
|
42
|
+
message: `Rate limit exceeded. 200 OK response sent to Elation to prevent further requests for appointment ${appointmentId} on endpoint ${(_b = endpoint === null || endpoint === void 0 ? void 0 : endpoint.url) !== null && _b !== void 0 ? _b : 'global'}.`,
|
41
43
|
},
|
42
44
|
});
|
43
45
|
return;
|
44
46
|
}
|
45
|
-
console.log(`Rate limit success for appointment_id=${appointmentId}`);
|
46
47
|
}
|
47
48
|
if (resource !== 'appointments') {
|
48
49
|
await onError({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"appointmentCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/appointmentCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAIA,4CAA6C;AAE7C,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,2BAA2B,GAGpC;IACF,GAAG,EAAE,6BAA6B;IAClC,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"appointmentCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/appointmentCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAIA,4CAA6C;AAE7C,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,aAAa,EAAE;QACb,GAAG,EAAE,eAAe;QACpB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,2BAA2B,GAGpC;IACF,GAAG,EAAE,6BAA6B;IAClC,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACxC,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;;QACH,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAGjD,CAAA;QAED,6CAA6C;QAC7C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,qBAAqB,EAAE;gBACjD,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,QAAQ,IAAI,aAAa,EAAE,CAAA;YAC1D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,oGAAoG,aAAa,gBAAgB,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,mCAAI,QAAQ,GAAG;qBACvK;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;YAChC,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,gCAAgC;iBAC1C;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,aAAa,EAAE,MAAM,CAAC,aAAa,CAAC;oBACpC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAClC;gBACD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,0BAAc;oBACtB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC;iBACzB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
|
@@ -16,7 +16,8 @@ const dataPoints = {
|
|
16
16
|
exports.patientCreatedOrUpdated = {
|
17
17
|
key: 'patientCreatedOrUpdated',
|
18
18
|
dataPoints,
|
19
|
-
onEvent: async ({ payload: { payload, settings }, onSuccess, onError, helpers: { rateLimiter }, }) => {
|
19
|
+
onEvent: async ({ payload: { payload, settings, endpoint }, onSuccess, onError, helpers: { rateLimiter }, }) => {
|
20
|
+
var _a, _b;
|
20
21
|
const { data, resource, action } = payload;
|
21
22
|
const { id: patientId } = data;
|
22
23
|
// skip non 'saved' actions for that webhook
|
@@ -25,23 +26,23 @@ exports.patientCreatedOrUpdated = {
|
|
25
26
|
}
|
26
27
|
// rate limiting
|
27
28
|
const { success, data: durationString } = settings_1.rateLimitDurationSchema.safeParse(settings.rateLimitDuration);
|
28
|
-
if (success
|
29
|
+
if (success && !(0, lodash_1.isNil)(durationString)) {
|
29
30
|
const duration = (0, settings_1.transformRateLimitDuration)(durationString);
|
30
31
|
const limiter = rateLimiter('elation-patient', {
|
31
32
|
requests: 1,
|
32
33
|
duration,
|
33
34
|
});
|
34
|
-
const
|
35
|
+
const key = `${(_a = endpoint === null || endpoint === void 0 ? void 0 : endpoint.id) !== null && _a !== void 0 ? _a : 'global'}-${patientId}`;
|
36
|
+
const { success } = await limiter.limit(key);
|
35
37
|
if (!success) {
|
36
38
|
await onError({
|
37
39
|
response: {
|
38
40
|
statusCode: 200,
|
39
|
-
message: `Rate limit exceeded for patient_id=${patientId}. 200 OK response sent to Elation to prevent further requests.`,
|
41
|
+
message: `Rate limit exceeded for patient_id=${patientId} on endpoint ${(_b = endpoint === null || endpoint === void 0 ? void 0 : endpoint.url) !== null && _b !== void 0 ? _b : 'global'}. 200 OK response sent to Elation to prevent further requests.`,
|
40
42
|
},
|
41
43
|
});
|
42
44
|
return;
|
43
45
|
}
|
44
|
-
console.log(`Rate limit success for patient_id=${patientId}`);
|
45
46
|
}
|
46
47
|
if (resource !== 'patients') {
|
47
48
|
await onError({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"patientCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/patientCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAKA,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,uBAAuB,GAGhC;IACF,GAAG,EAAE,yBAAyB;IAC9B,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,
|
1
|
+
{"version":3,"file":"patientCreatedOrUpdated.js","sourceRoot":"","sources":["../../../../extensions/elation/webhooks/patientCreatedOrUpdated.ts"],"names":[],"mappings":";;;AAKA,0CAGoB;AACpB,mCAA8B;AAE9B,MAAM,UAAU,GAAG;IACjB,SAAS,EAAE;QACT,GAAG,EAAE,WAAW;QAChB,SAAS,EAAE,QAAQ;KACpB;IACD,OAAO,EAAE;QACP,GAAG,EAAE,SAAS;QACd,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA;AAElC,QAAA,uBAAuB,GAGhC;IACF,GAAG,EAAE,yBAAyB;IAC9B,UAAU;IACV,OAAO,EAAE,KAAK,EAAE,EACd,OAAO,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACxC,SAAS,EACT,OAAO,EACP,OAAO,EAAE,EAAE,WAAW,EAAE,GACzB,EAAE,EAAE;;QACH,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAA;QAC1C,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAEzB,CAAA;QACD,4CAA4C;QAC5C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QAED,gBAAgB;QAChB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,kCAAuB,CAAC,SAAS,CACzE,QAAQ,CAAC,iBAAiB,CAC3B,CAAA;QACD,IAAI,OAAO,IAAI,CAAC,IAAA,cAAK,EAAC,cAAc,CAAC,EAAE,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAA,qCAA0B,EAAC,cAAc,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,iBAAiB,EAAE;gBAC7C,QAAQ,EAAE,CAAC;gBACX,QAAQ;aACT,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,QAAQ,IAAI,SAAS,EAAE,CAAA;YACtD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE;wBACR,UAAU,EAAE,GAAG;wBACf,OAAO,EAAE,sCAAsC,SAAS,gBAAgB,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,mCAAI,QAAQ,gEAAgE;qBAClK;iBACF,CAAC,CAAA;gBACF,OAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC5B,MAAM,OAAO,CAAC;gBACZ,QAAQ,EAAE;oBACR,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,2BAA2B;iBACrC;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,CAAC;gBACd,WAAW,EAAE;oBACX,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;iBAC9B;gBACD,iDAAiD;gBACjD,kBAAkB,EAAE;oBAClB,MAAM,EAAE,gCAAgC;oBACxC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;iBACvB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@awell-health/awell-extensions",
|
3
|
-
"version": "2.0.
|
3
|
+
"version": "2.0.228",
|
4
4
|
"packageManager": "yarn@4.5.3",
|
5
5
|
"main": "dist/src/index.js",
|
6
6
|
"repository": {
|
@@ -82,7 +82,7 @@
|
|
82
82
|
},
|
83
83
|
"dependencies": {
|
84
84
|
"@awell-health/awell-sdk": "0.1.24",
|
85
|
-
"@awell-health/extensions-core": "1.0.
|
85
|
+
"@awell-health/extensions-core": "1.0.25",
|
86
86
|
"@awell-health/healthie-sdk": "^0.1.1",
|
87
87
|
"@dropbox/sign": "^1.8.0",
|
88
88
|
"@hubspot/api-client": "^11.2.0",
|