@awell-health/awell-extensions 1.0.86 → 1.0.88
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/dist/extensions/sendbird/v1/actions/updateTicket/config/fields.d.ts +39 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/config/fields.js +36 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/config/fields.js.map +1 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/config/index.d.ts +1 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/config/index.js +7 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/config/index.js.map +1 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.d.ts +4 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.js +75 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.js.map +1 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.test.d.ts +1 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.test.js +49 -0
- package/dist/extensions/sendbird/v1/actions/updateTicket/updateTicket.test.js.map +1 -0
- package/dist/extensions/sendbird/v1/client/client.d.ts +2 -1
- package/dist/extensions/sendbird/v1/client/client.js +5 -0
- package/dist/extensions/sendbird/v1/client/client.js.map +1 -1
- package/dist/extensions/sendbird/v1/types.d.ts +4 -0
- 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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"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
import { z } from 'zod';
|
2
|
+
import { FieldType } from '@awell-health/extensions-core';
|
3
|
+
import { TicketPriority } from '../../../types';
|
4
|
+
export declare const fields: {
|
5
|
+
ticketId: {
|
6
|
+
label: string;
|
7
|
+
id: string;
|
8
|
+
type: FieldType.NUMERIC;
|
9
|
+
required: true;
|
10
|
+
description: string;
|
11
|
+
};
|
12
|
+
priority: {
|
13
|
+
label: string;
|
14
|
+
id: string;
|
15
|
+
type: FieldType.STRING;
|
16
|
+
required: false;
|
17
|
+
description: string;
|
18
|
+
};
|
19
|
+
relatedChannelUrls: {
|
20
|
+
label: string;
|
21
|
+
id: string;
|
22
|
+
type: FieldType.STRING;
|
23
|
+
required: false;
|
24
|
+
description: string;
|
25
|
+
};
|
26
|
+
};
|
27
|
+
export declare const FieldsValidationSchema: z.ZodObject<{
|
28
|
+
ticketId: z.ZodNumber;
|
29
|
+
relatedChannelUrls: z.ZodString;
|
30
|
+
priority: z.ZodEnum<[TicketPriority, ...TicketPriority[]]>;
|
31
|
+
}, "strip", z.ZodTypeAny, {
|
32
|
+
priority: TicketPriority;
|
33
|
+
relatedChannelUrls: string;
|
34
|
+
ticketId: number;
|
35
|
+
}, {
|
36
|
+
priority: TicketPriority;
|
37
|
+
relatedChannelUrls: string;
|
38
|
+
ticketId: number;
|
39
|
+
}>;
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.FieldsValidationSchema = exports.fields = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
6
|
+
const types_1 = require("../../../types");
|
7
|
+
exports.fields = {
|
8
|
+
ticketId: {
|
9
|
+
label: 'Ticket ID',
|
10
|
+
id: 'ticketId',
|
11
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
12
|
+
required: true,
|
13
|
+
description: "A customer's unique ID.",
|
14
|
+
},
|
15
|
+
priority: {
|
16
|
+
label: 'Priority',
|
17
|
+
id: 'priority',
|
18
|
+
type: extensions_core_1.FieldType.STRING,
|
19
|
+
required: false,
|
20
|
+
description: 'Specifies the priority of a ticket. Acceptable values are the following: "LOW", "MEDIUM", "HIGH", and "URGENT". Defaults to: "MEDIUM".',
|
21
|
+
},
|
22
|
+
relatedChannelUrls: {
|
23
|
+
label: 'Related channel URLs',
|
24
|
+
id: 'relatedChannelUrls',
|
25
|
+
type: extensions_core_1.FieldType.STRING,
|
26
|
+
required: false,
|
27
|
+
description: 'A comma-separated string of group channel URLs for reference, where the corresponding customer belongs. Can have up to 3 group channel URLs.',
|
28
|
+
},
|
29
|
+
};
|
30
|
+
const priorityEnum = zod_1.z.enum(Object.values(types_1.TicketPriority));
|
31
|
+
exports.FieldsValidationSchema = zod_1.z.object({
|
32
|
+
ticketId: zod_1.z.coerce.number(),
|
33
|
+
relatedChannelUrls: (0, zod_1.string)((0, extensions_core_1.validateCommaSeparatedList)((value) => zod_1.z.string().safeParse(value).success, false)),
|
34
|
+
priority: priorityEnum,
|
35
|
+
});
|
36
|
+
//# sourceMappingURL=fields.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/sendbird/v1/actions/updateTicket/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAgD;AAChD,mEAIsC;AACtC,0CAA+C;AAElC,QAAA,MAAM,GAAG;IACpB,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW;QAClB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,yBAAyB;KACvC;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,wIAAwI;KAC3I;IACD,kBAAkB,EAAE;QAClB,KAAK,EAAE,sBAAsB;QAC7B,EAAE,EAAE,oBAAoB;QACxB,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EACT,8IAA8I;KACjJ;CAC8B,CAAA;AAEjC,MAAM,YAAY,GAAG,OAAC,CAAC,IAAI,CAGzB,MAAM,CAAC,MAAM,CAAC,sBAAc,CAA0C,CAAC,CAAA;AAE5D,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE;IAC3B,kBAAkB,EAAE,IAAA,YAAM,EACxB,IAAA,4CAA0B,EACxB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,EAC9C,KAAK,CACN,CACF;IACD,QAAQ,EAAE,YAAY;CAC2B,CAAC,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { FieldsValidationSchema, fields } from './fields';
|
@@ -0,0 +1,7 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.fields = exports.FieldsValidationSchema = void 0;
|
4
|
+
var fields_1 = require("./fields");
|
5
|
+
Object.defineProperty(exports, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
|
6
|
+
Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
|
7
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/sendbird/v1/actions/updateTicket/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,gHAAA,sBAAsB,OAAA;AAAE,gGAAA,MAAM,OAAA"}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.updateTicket = void 0;
|
4
|
+
const zod_1 = require("zod");
|
5
|
+
const zod_validation_error_1 = require("zod-validation-error");
|
6
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
7
|
+
const settings_1 = require("../../../settings");
|
8
|
+
const config_1 = require("./config");
|
9
|
+
const client_1 = require("../../client");
|
10
|
+
exports.updateTicket = {
|
11
|
+
key: 'updateTicket',
|
12
|
+
title: 'Update ticket',
|
13
|
+
description: 'Update a ticket using the Desk API.',
|
14
|
+
category: extensions_core_1.Category.COMMUNICATION,
|
15
|
+
fields: config_1.fields,
|
16
|
+
previewable: false,
|
17
|
+
onActivityCreated: async (payload, onComplete, onError) => {
|
18
|
+
try {
|
19
|
+
const { settings: { applicationId, chatApiToken, deskApiToken }, fields: { ticketId, priority, relatedChannelUrls }, } = (0, extensions_core_1.validate)({
|
20
|
+
schema: zod_1.z.object({
|
21
|
+
settings: settings_1.SettingsValidationSchema,
|
22
|
+
fields: config_1.FieldsValidationSchema,
|
23
|
+
}),
|
24
|
+
payload,
|
25
|
+
});
|
26
|
+
const client = new client_1.SendbirdClient({
|
27
|
+
applicationId,
|
28
|
+
chatApiToken,
|
29
|
+
deskApiToken,
|
30
|
+
});
|
31
|
+
await client.deskApi.updateTicket(ticketId, {
|
32
|
+
priority,
|
33
|
+
relatedChannelUrls,
|
34
|
+
});
|
35
|
+
await onComplete();
|
36
|
+
}
|
37
|
+
catch (err) {
|
38
|
+
if (err instanceof zod_1.ZodError) {
|
39
|
+
const error = (0, zod_validation_error_1.fromZodError)(err);
|
40
|
+
await onError({
|
41
|
+
events: [
|
42
|
+
{
|
43
|
+
date: new Date().toISOString(),
|
44
|
+
text: { en: error.message },
|
45
|
+
error: {
|
46
|
+
category: 'WRONG_INPUT',
|
47
|
+
message: error.message,
|
48
|
+
},
|
49
|
+
},
|
50
|
+
],
|
51
|
+
});
|
52
|
+
}
|
53
|
+
else if ((0, client_1.isSendbirdDeskError)(err)) {
|
54
|
+
const events = (0, client_1.sendbirdDeskErrorToActivityEvent)(err);
|
55
|
+
await onError({ events });
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
const message = err.message;
|
59
|
+
await onError({
|
60
|
+
events: [
|
61
|
+
{
|
62
|
+
date: new Date().toISOString(),
|
63
|
+
text: { en: message },
|
64
|
+
error: {
|
65
|
+
category: 'SERVER_ERROR',
|
66
|
+
message,
|
67
|
+
},
|
68
|
+
},
|
69
|
+
],
|
70
|
+
});
|
71
|
+
}
|
72
|
+
}
|
73
|
+
},
|
74
|
+
};
|
75
|
+
//# sourceMappingURL=updateTicket.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"updateTicket.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/updateTicket/updateTicket.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AACjC,+DAAmD;AAGnD,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAyD;AACzD,yCAIqB;AAER,QAAA,YAAY,GAA2C;IAClE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qCAAqC;IAClD,QAAQ,EAAE,0BAAQ,CAAC,aAAa;IAChC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;QACxD,IAAI;YACF,MAAM,EACJ,QAAQ,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,EACvD,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GACnD,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;oBACf,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;gBACF,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAI,uBAAc,CAAC;gBAChC,aAAa;gBACb,YAAY;gBACZ,YAAY;aACb,CAAC,CAAA;YAEF,MAAM,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ,EAAE;gBAC1C,QAAQ;gBACR,kBAAkB;aACnB,CAAC,CAAA;YAEF,MAAM,UAAU,EAAE,CAAA;SACnB;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,GAAG,YAAY,cAAQ,EAAE;gBAC3B,MAAM,KAAK,GAAG,IAAA,mCAAY,EAAC,GAAG,CAAC,CAAA;gBAC/B,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE;4BAC3B,KAAK,EAAE;gCACL,QAAQ,EAAE,aAAa;gCACvB,OAAO,EAAE,KAAK,CAAC,OAAO;6BACvB;yBACF;qBACF;iBACF,CAAC,CAAA;aACH;iBAAM,IAAI,IAAA,4BAAmB,EAAC,GAAG,CAAC,EAAE;gBACnC,MAAM,MAAM,GAAG,IAAA,yCAAgC,EAAC,GAAG,CAAC,CAAA;gBACpD,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;aAC1B;iBAAM;gBACL,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAA;gBACtC,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;4BACrB,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO;6BACR;yBACF;qBACF;iBACF,CAAC,CAAA;aACH;SACF;IACH,CAAC;CACF,CAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export {};
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const __mocks__1 = require("../../client/__mocks__");
|
4
|
+
const tests_1 = require("../../../../../src/tests");
|
5
|
+
const updateTicket_1 = require("./updateTicket");
|
6
|
+
jest.mock('../../client');
|
7
|
+
describe('Update ticket', () => {
|
8
|
+
const onComplete = jest.fn();
|
9
|
+
const onError = jest.fn();
|
10
|
+
const basePayload = (0, tests_1.generateTestPayload)({
|
11
|
+
pathway: {
|
12
|
+
id: 'pathway-id',
|
13
|
+
definition_id: 'pathway-definition-id',
|
14
|
+
},
|
15
|
+
activity: {
|
16
|
+
id: 'activity-id',
|
17
|
+
},
|
18
|
+
patient: { id: 'test-patient' },
|
19
|
+
fields: {
|
20
|
+
ticketId: __mocks__1.mockedTicketData.id,
|
21
|
+
relatedChannelUrls: `${__mocks__1.mockedChannelNames.channel1},${__mocks__1.mockedChannelNames.channel2}`,
|
22
|
+
priority: __mocks__1.mockedTicketData.priority,
|
23
|
+
},
|
24
|
+
settings: {
|
25
|
+
applicationId: 'applicationId',
|
26
|
+
chatApiToken: 'chatApiToken',
|
27
|
+
deskApiToken: 'deskApiToken',
|
28
|
+
},
|
29
|
+
});
|
30
|
+
beforeEach(() => {
|
31
|
+
jest.clearAllMocks();
|
32
|
+
});
|
33
|
+
test('Should call the onComplete callback', async () => {
|
34
|
+
await updateTicket_1.updateTicket.onActivityCreated(basePayload, onComplete, onError);
|
35
|
+
expect(__mocks__1.SendbirdClientMockImplementation.deskApi.updateTicket).toHaveBeenCalledWith(__mocks__1.mockedTicketData.id, {
|
36
|
+
relatedChannelUrls: `${__mocks__1.mockedChannelNames.channel1},${__mocks__1.mockedChannelNames.channel2}`,
|
37
|
+
priority: __mocks__1.mockedTicketData.priority,
|
38
|
+
});
|
39
|
+
expect(onComplete).toHaveBeenCalledTimes(1);
|
40
|
+
expect(onError).not.toHaveBeenCalled();
|
41
|
+
});
|
42
|
+
test('Should call the onError callback when it receives invalid ticket ID', async () => {
|
43
|
+
basePayload.fields.ticketId = NaN;
|
44
|
+
await updateTicket_1.updateTicket.onActivityCreated(basePayload, onComplete, onError);
|
45
|
+
expect(onComplete).not.toHaveBeenCalled();
|
46
|
+
expect(onError).toHaveBeenCalledTimes(1);
|
47
|
+
});
|
48
|
+
});
|
49
|
+
//# sourceMappingURL=updateTicket.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"updateTicket.test.js","sourceRoot":"","sources":["../../../../../../extensions/sendbird/v1/actions/updateTicket/updateTicket.test.ts"],"names":[],"mappings":";;AAAA,qDAI+B;AAC/B,oDAA8D;AAC9D,iDAA6C;AAE7C,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;AAEzB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,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,cAAc,EAAE;QAC/B,MAAM,EAAE;YACN,QAAQ,EAAE,2BAAgB,CAAC,EAAE;YAC7B,kBAAkB,EAAE,GAAG,6BAAkB,CAAC,QAAQ,IAAI,6BAAkB,CAAC,QAAQ,EAAE;YACnF,QAAQ,EAAE,2BAAgB,CAAC,QAAQ;SACpC;QACD,QAAQ,EAAE;YACR,aAAa,EAAE,eAAe;YAC9B,YAAY,EAAE,cAAc;YAC5B,YAAY,EAAE,cAAc;SAC7B;KACF,CAAC,CAAA;IAEF,UAAU,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,aAAa,EAAE,CAAA;IACtB,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACrD,MAAM,2BAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAEtE,MAAM,CACJ,2CAAgC,CAAC,OAAO,CAAC,YAAY,CACtD,CAAC,oBAAoB,CAAC,2BAAgB,CAAC,EAAE,EAAE;YAC1C,kBAAkB,EAAE,GAAG,6BAAkB,CAAC,QAAQ,IAAI,6BAAkB,CAAC,QAAQ,EAAE;YACnF,QAAQ,EAAE,2BAAgB,CAAC,QAAQ;SACpC,CAAC,CAAA;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QAC3C,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACrF,WAAW,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAA;QAEjC,MAAM,2BAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;QAEtE,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAA;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { type AxiosResponse } from 'axios';
|
2
|
-
import { type UpdateUserInput, type CreateUserInput, type User, type Metadata, type CreateCustomerInput, type Customer, type UpdateCustomerCustomFieldsInput, type CreateTicketInput, type Ticket } from '../types';
|
2
|
+
import { type UpdateUserInput, type CreateUserInput, type User, type Metadata, type CreateCustomerInput, type Customer, type UpdateCustomerCustomFieldsInput, type CreateTicketInput, type Ticket, type UpdateTicketInput } from '../types';
|
3
3
|
declare class SendbirdChatAPI {
|
4
4
|
private readonly _baseApi;
|
5
5
|
constructor({ applicationId, token, }: {
|
@@ -26,6 +26,7 @@ declare class SendbirdDeskAPI {
|
|
26
26
|
getCustomer: (customerId: number) => Promise<AxiosResponse<Customer>>;
|
27
27
|
updateCustomerCustomFields: (customerId: number, { customFields }: Pick<UpdateCustomerCustomFieldsInput, 'customFields'>) => Promise<AxiosResponse<Customer>>;
|
28
28
|
createTicket: (ticket: CreateTicketInput) => Promise<AxiosResponse<Ticket>>;
|
29
|
+
updateTicket: (ticketId: number, ticket: UpdateTicketInput) => Promise<AxiosResponse<any>>;
|
29
30
|
}
|
30
31
|
export declare class SendbirdClient {
|
31
32
|
readonly chatApi: SendbirdChatAPI;
|
@@ -99,6 +99,11 @@ class SendbirdDeskAPI {
|
|
99
99
|
body: ticket,
|
100
100
|
});
|
101
101
|
};
|
102
|
+
this.updateTicket = async (ticketId, ticket) => {
|
103
|
+
return await this._baseApi.patch(`tickets/${ticketId}`, {
|
104
|
+
body: ticket,
|
105
|
+
});
|
106
|
+
};
|
102
107
|
this._baseApi = new SendbirdBaseAPI({
|
103
108
|
applicationId,
|
104
109
|
baseUrl: `https://desk-api-${applicationId}.sendbird.com/platform/v1`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/sendbird/v1/client/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAiD;
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/sendbird/v1/client/client.ts"],"names":[],"mappings":"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"}
|