@awell-health/awell-extensions 1.0.86 → 1.0.87
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/sendbird/v1/actions/createUser/config/fields.d.ts +4 -4
- package/dist/extensions/sendbird/v1/actions/createUser/config/fields.js +3 -3
- package/dist/extensions/sendbird/v1/actions/createUser/config/fields.js.map +1 -1
- package/dist/extensions/sendbird/v1/actions/createUser/createUser.js +14 -2
- package/dist/extensions/sendbird/v1/actions/createUser/createUser.js.map +1 -1
- package/dist/extensions/sendbird/v1/actions/createUser/createUser.test.js +54 -1
- package/dist/extensions/sendbird/v1/actions/createUser/createUser.test.js.map +1 -1
- package/package.json +1 -1
@@ -13,7 +13,7 @@ export declare const fields: {
|
|
13
13
|
label: string;
|
14
14
|
type: FieldType.STRING;
|
15
15
|
description: string;
|
16
|
-
required:
|
16
|
+
required: false;
|
17
17
|
};
|
18
18
|
issueAccessToken: {
|
19
19
|
id: string;
|
@@ -40,19 +40,19 @@ export declare const fields: {
|
|
40
40
|
};
|
41
41
|
export declare const FieldsValidationSchema: z.ZodObject<{
|
42
42
|
userId: z.ZodString;
|
43
|
-
nickname: z.ZodString
|
43
|
+
nickname: z.ZodOptional<z.ZodString>;
|
44
44
|
issueAccessToken: z.ZodOptional<z.ZodBoolean>;
|
45
45
|
profileUrl: z.ZodUnion<[z.ZodOptional<z.ZodString>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
|
46
46
|
metadata: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, import("../../../types").Metadata, string>, import("../../../types").Metadata, string>>;
|
47
47
|
}, "strip", z.ZodTypeAny, {
|
48
48
|
userId: string;
|
49
|
-
nickname
|
49
|
+
nickname?: string | undefined;
|
50
50
|
issueAccessToken?: boolean | undefined;
|
51
51
|
profileUrl?: string | undefined;
|
52
52
|
metadata?: import("../../../types").Metadata | undefined;
|
53
53
|
}, {
|
54
54
|
userId: string;
|
55
|
-
nickname
|
55
|
+
nickname?: string | undefined;
|
56
56
|
issueAccessToken?: boolean | undefined;
|
57
57
|
profileUrl?: string | undefined;
|
58
58
|
metadata?: string | undefined;
|
@@ -16,8 +16,8 @@ exports.fields = {
|
|
16
16
|
id: 'nickname',
|
17
17
|
label: 'Nickname',
|
18
18
|
type: extensions_core_1.FieldType.STRING,
|
19
|
-
description: "The user's nickname. Maximum length is 80 characters.",
|
20
|
-
required:
|
19
|
+
description: "The user's nickname. Maximum length is 80 characters. If left empty, we will use the patient's first and last name.",
|
20
|
+
required: false,
|
21
21
|
},
|
22
22
|
issueAccessToken: {
|
23
23
|
id: 'issueAccessToken',
|
@@ -44,7 +44,7 @@ exports.fields = {
|
|
44
44
|
};
|
45
45
|
exports.FieldsValidationSchema = zod_1.z.object({
|
46
46
|
userId: zod_1.z.string().max(80).nonempty(),
|
47
|
-
nickname: zod_1.z.string().max(80).
|
47
|
+
nickname: zod_1.z.string().max(80).optional(),
|
48
48
|
issueAccessToken: zod_1.z.boolean().optional(),
|
49
49
|
profileUrl: (0, extensions_core_1.makeStringOptional)(zod_1.z.string().url()),
|
50
50
|
metadata: zod_1.z.optional(validation_1.MetadataValidationSchema),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/sendbird/v1/actions/createUser/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAKsC;AACtC,oDAA8D;AAEjD,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,oIAAoI;KACvI;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,WAAW,
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/sendbird/v1/actions/createUser/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAKsC;AACtC,oDAA8D;AAEjD,QAAA,MAAM,GAAG;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,IAAI;QACd,WAAW,EACT,oIAAoI;KACvI;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,WAAW,EACT,qHAAqH;QACvH,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,4DAA4D;QACzE,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,KAAK;KAChB;IACD,UAAU,EAAE;QACV,EAAE,EAAE,YAAY;QAChB,KAAK,EAAE,aAAa;QACpB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,GAAG;QAC1B,QAAQ,EAAE,KAAK;KAChB;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EACT,iUAAiU;QACnU,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,KAAK;KAChB;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACxC,UAAU,EAAE,IAAA,oCAAkB,EAAC,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;IAChD,QAAQ,EAAE,OAAC,CAAC,QAAQ,CAAC,qCAAwB,CAAC;CACG,CAAC,CAAA"}
|
@@ -8,6 +8,7 @@ const settings_1 = require("../../../settings");
|
|
8
8
|
const config_1 = require("./config");
|
9
9
|
const client_1 = require("../../client");
|
10
10
|
const constants_1 = require("../../constants");
|
11
|
+
const lodash_1 = require("lodash");
|
11
12
|
exports.createUser = {
|
12
13
|
key: 'createUser',
|
13
14
|
title: 'Create user',
|
@@ -18,7 +19,7 @@ exports.createUser = {
|
|
18
19
|
previewable: false,
|
19
20
|
onActivityCreated: async (payload, onComplete, onError) => {
|
20
21
|
try {
|
21
|
-
const { settings: { applicationId, chatApiToken, deskApiToken }, fields: { userId, metadata,
|
22
|
+
const { settings: { applicationId, chatApiToken, deskApiToken }, fields: { userId, metadata, issueAccessToken, profileUrl }, } = (0, extensions_core_1.validate)({
|
22
23
|
schema: zod_1.z.object({
|
23
24
|
settings: settings_1.SettingsValidationSchema,
|
24
25
|
fields: config_1.FieldsValidationSchema,
|
@@ -32,7 +33,7 @@ exports.createUser = {
|
|
32
33
|
});
|
33
34
|
const res = await client.chatApi.createUser({
|
34
35
|
user_id: userId,
|
35
|
-
nickname,
|
36
|
+
nickname: parseNickname(payload),
|
36
37
|
metadata,
|
37
38
|
issue_access_token: issueAccessToken,
|
38
39
|
profile_url: profileUrl !== null && profileUrl !== void 0 ? profileUrl : constants_1.DEFAULT_PROFILE_URL,
|
@@ -77,4 +78,15 @@ exports.createUser = {
|
|
77
78
|
}
|
78
79
|
},
|
79
80
|
};
|
81
|
+
const parseNickname = (payload) => {
|
82
|
+
var _a, _b, _c, _d;
|
83
|
+
const nickname = payload.fields.nickname;
|
84
|
+
if (!(0, lodash_1.isEmpty)(nickname))
|
85
|
+
return nickname;
|
86
|
+
const firstName = (_b = (_a = payload.patient.profile) === null || _a === void 0 ? void 0 : _a.first_name) !== null && _b !== void 0 ? _b : '';
|
87
|
+
const lastName = (_d = (_c = payload.patient.profile) === null || _c === void 0 ? void 0 : _c.last_name) !== null && _d !== void 0 ? _d : '';
|
88
|
+
if ((0, lodash_1.isEmpty)(firstName) && (0, lodash_1.isEmpty)(lastName))
|
89
|
+
throw new Error('The required nickname has not been specified, and neither the first name nor last name of the patient has been set in their profile');
|
90
|
+
return `${firstName} ${lastName}`.trim();
|
91
|
+
};
|
80
92
|
//# sourceMappingURL=createUser.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/createUser/createUser.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AACjC,+DAAmD;AAGnD,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAqE;AACrE,yCAIqB;AACrB,+CAAqD;
|
1
|
+
{"version":3,"file":"createUser.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/createUser/createUser.ts"],"names":[],"mappings":"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"}
|
@@ -15,7 +15,10 @@ describe('Create user', () => {
|
|
15
15
|
activity: {
|
16
16
|
id: 'activity-id',
|
17
17
|
},
|
18
|
-
patient: {
|
18
|
+
patient: {
|
19
|
+
id: 'test-patient',
|
20
|
+
profile: { first_name: 'first-name', last_name: 'last-name' },
|
21
|
+
},
|
19
22
|
fields: {
|
20
23
|
userId: __mocks__1.mockedUserData.user_id,
|
21
24
|
nickname: __mocks__1.mockedUserData.nickname,
|
@@ -46,5 +49,55 @@ describe('Create user', () => {
|
|
46
49
|
});
|
47
50
|
expect(onError).not.toHaveBeenCalled();
|
48
51
|
});
|
52
|
+
test('Should call the onComplete callback with nickname as first and last name', async () => {
|
53
|
+
var _a, _b;
|
54
|
+
basePayload.fields.nickname = '';
|
55
|
+
await __1.createUser.onActivityCreated(basePayload, onComplete, onError);
|
56
|
+
expect(__mocks__1.SendbirdClientMockImplementation.chatApi.createUser).toHaveBeenCalledWith({
|
57
|
+
user_id: basePayload.fields.userId,
|
58
|
+
nickname: `${(_a = basePayload.patient.profile) === null || _a === void 0 ? void 0 : _a.first_name} ${(_b = basePayload.patient.profile) === null || _b === void 0 ? void 0 : _b.last_name}`,
|
59
|
+
issue_access_token: basePayload.fields.issueAccessToken,
|
60
|
+
metadata: JSON.parse(basePayload.fields.metadata),
|
61
|
+
profile_url: __mocks__1.mockedUserData.profile_url,
|
62
|
+
});
|
63
|
+
expect(onComplete).toHaveBeenCalledWith({
|
64
|
+
data_points: { userId: basePayload.fields.userId },
|
65
|
+
});
|
66
|
+
expect(onError).not.toHaveBeenCalled();
|
67
|
+
});
|
68
|
+
test('Should call the onError when nickname and first and last name in patient are missing', async () => {
|
69
|
+
basePayload.fields.nickname = '';
|
70
|
+
basePayload.patient = {
|
71
|
+
...basePayload.patient,
|
72
|
+
profile: { first_name: undefined, last_name: undefined },
|
73
|
+
};
|
74
|
+
await __1.createUser.onActivityCreated(basePayload, onComplete, onError);
|
75
|
+
expect(onComplete).not.toHaveBeenCalled();
|
76
|
+
expect(onError).toBeCalledTimes(1);
|
77
|
+
});
|
78
|
+
test('Should call the onComplete callback when firstName is available but lastName and nickname is missing', async () => {
|
79
|
+
basePayload.fields.nickname = '';
|
80
|
+
basePayload.patient = {
|
81
|
+
...basePayload.patient,
|
82
|
+
profile: { first_name: 'test', last_name: undefined },
|
83
|
+
};
|
84
|
+
await __1.createUser.onActivityCreated(basePayload, onComplete, onError);
|
85
|
+
expect(onComplete).toHaveBeenCalledWith({
|
86
|
+
data_points: { userId: basePayload.fields.userId },
|
87
|
+
});
|
88
|
+
expect(onError).not.toHaveBeenCalled();
|
89
|
+
});
|
90
|
+
test('Should call the onComplete callback when lastName is available but firstName and nickname is missing', async () => {
|
91
|
+
basePayload.fields.nickname = '';
|
92
|
+
basePayload.patient = {
|
93
|
+
...basePayload.patient,
|
94
|
+
profile: { first_name: undefined, last_name: 'test' },
|
95
|
+
};
|
96
|
+
await __1.createUser.onActivityCreated(basePayload, onComplete, onError);
|
97
|
+
expect(onComplete).toHaveBeenCalledWith({
|
98
|
+
data_points: { userId: basePayload.fields.userId },
|
99
|
+
});
|
100
|
+
expect(onError).not.toHaveBeenCalled();
|
101
|
+
});
|
49
102
|
});
|
50
103
|
//# sourceMappingURL=createUser.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createUser.test.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/createUser/createUser.test.ts"],"names":[],"mappings":";;AAAA,qDAG+B;AAC/B,0BAA+B;AAC/B,oDAA8D;AAE9D,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAEzB,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEzB,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC;QACtC,OAAO,EAAE;YACP,EAAE,EAAE,YAAY;YAChB,aAAa,EAAE,uBAAuB;SACvC;QACD,QAAQ,EAAE;YACR,EAAE,EAAE,aAAa;SAClB;QACD,OAAO,EAAE,EAAE,EAAE,EAAE,
|
1
|
+
{"version":3,"file":"createUser.test.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/createUser/createUser.test.ts"],"names":[],"mappings":"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"}
|