@orchesty/connector-zendesk 1.0.0

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.
Files changed (89) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +190 -0
  3. package/coverage/clover.xml +241 -0
  4. package/coverage/coverage-final.json +11 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/favicon.png +0 -0
  8. package/coverage/lcov-report/index.html +161 -0
  9. package/coverage/lcov-report/prettify.css +1 -0
  10. package/coverage/lcov-report/prettify.js +2 -0
  11. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  12. package/coverage/lcov-report/sorter.js +210 -0
  13. package/coverage/lcov-report/src/Batch/ZendeskCreateWebhookConnector.ts.html +373 -0
  14. package/coverage/lcov-report/src/Batch/ZendeskDeleteWebhookConnector.ts.html +202 -0
  15. package/coverage/lcov-report/src/Batch/ZendeskListTicketsBatch.ts.html +337 -0
  16. package/coverage/lcov-report/src/Batch/ZendeskListUsersBatch.ts.html +247 -0
  17. package/coverage/lcov-report/src/Batch/index.html +161 -0
  18. package/coverage/lcov-report/src/Connector/ZendeskCreateTicketConnector.ts.html +319 -0
  19. package/coverage/lcov-report/src/Connector/ZendeskCreateTriggerConnector.ts.html +226 -0
  20. package/coverage/lcov-report/src/Connector/ZendeskCreateUserConnector.ts.html +265 -0
  21. package/coverage/lcov-report/src/Connector/ZendeskDeleteTriggerConnector.ts.html +223 -0
  22. package/coverage/lcov-report/src/Connector/index.html +161 -0
  23. package/coverage/lcov-report/src/ZendeskApplication.ts.html +448 -0
  24. package/coverage/lcov-report/src/index.html +116 -0
  25. package/coverage/lcov-report/test/dataProvider.ts.html +307 -0
  26. package/coverage/lcov-report/test/index.html +116 -0
  27. package/coverage/lcov.info +389 -0
  28. package/dist/Batch/ZendeskCreateWebhookConnector.d.ts +16 -0
  29. package/dist/Batch/ZendeskCreateWebhookConnector.js +62 -0
  30. package/dist/Batch/ZendeskDeleteWebhookConnector.d.ts +7 -0
  31. package/dist/Batch/ZendeskDeleteWebhookConnector.js +37 -0
  32. package/dist/Batch/ZendeskListTicketsBatch.d.ts +46 -0
  33. package/dist/Batch/ZendeskListTicketsBatch.js +27 -0
  34. package/dist/Batch/ZendeskListUsersBatch.d.ts +11 -0
  35. package/dist/Batch/ZendeskListUsersBatch.js +27 -0
  36. package/dist/Connector/ZendeskCreateTicketConnector.d.ts +57 -0
  37. package/dist/Connector/ZendeskCreateTicketConnector.js +22 -0
  38. package/dist/Connector/ZendeskCreateTriggerConnector.d.ts +16 -0
  39. package/dist/Connector/ZendeskCreateTriggerConnector.js +27 -0
  40. package/dist/Connector/ZendeskCreateUserConnector.d.ts +36 -0
  41. package/dist/Connector/ZendeskCreateUserConnector.js +23 -0
  42. package/dist/Connector/ZendeskDeleteTriggerConnector.d.ts +13 -0
  43. package/dist/Connector/ZendeskDeleteTriggerConnector.js +29 -0
  44. package/dist/ZendeskApplication.d.ts +27 -0
  45. package/dist/ZendeskApplication.js +124 -0
  46. package/dist/package.json +23 -0
  47. package/dist/types/trigger.types.d.ts +21 -0
  48. package/dist/types/trigger.types.js +2 -0
  49. package/dist/types/webhook.types.d.ts +19 -0
  50. package/dist/types/webhook.types.js +2 -0
  51. package/jest.config.js +13 -0
  52. package/package.json +23 -0
  53. package/src/Batch/ZendeskCreateWebhookConnector.ts +96 -0
  54. package/src/Batch/ZendeskDeleteWebhookConnector.ts +39 -0
  55. package/src/Batch/ZendeskListTicketsBatch.ts +84 -0
  56. package/src/Batch/ZendeskListUsersBatch.ts +54 -0
  57. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/1-mock.json +57 -0
  58. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/input.json +6 -0
  59. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/mock.json +106 -0
  60. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output.json +18 -0
  61. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output1.json +12 -0
  62. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/input.json +6 -0
  63. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/mock.json +161 -0
  64. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/output.json +19 -0
  65. package/src/Batch/__tests__/ZendeskListTicketsBatch.ts +17 -0
  66. package/src/Batch/__tests__/ZendeskListUsersBatch.ts +17 -0
  67. package/src/Connector/ZendeskCreateTicketConnector.ts +78 -0
  68. package/src/Connector/ZendeskCreateTriggerConnector.ts +47 -0
  69. package/src/Connector/ZendeskCreateUserConnector.ts +60 -0
  70. package/src/Connector/ZendeskDeleteTriggerConnector.ts +46 -0
  71. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/input.json +14 -0
  72. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/mock.json +194 -0
  73. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/output.json +194 -0
  74. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/input.json +11 -0
  75. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/mock.json +31 -0
  76. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/output.json +29 -0
  77. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/input.json +25 -0
  78. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/mock.json +45 -0
  79. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/output.json +44 -0
  80. package/src/Connector/__tests__/ZendeskCreateTicketConnector.ts +17 -0
  81. package/src/Connector/__tests__/ZendeskCreateTriggerConnector.ts +17 -0
  82. package/src/Connector/__tests__/ZendeskCreateUserConnector.ts +17 -0
  83. package/src/ZendeskApplication.ts +121 -0
  84. package/src/types/trigger.types.ts +19 -0
  85. package/src/types/webhook.types.ts +20 -0
  86. package/test/dataProvider.ts +74 -0
  87. package/tsconfig.json +8 -0
  88. package/tsconfig.prod.json +13 -0
  89. package/tsconfig.prod.tsbuildinfo +1 -0
@@ -0,0 +1,389 @@
1
+ TN:
2
+ SF:src/ZendeskApplication.ts
3
+ FN:21,(anonymous_10)
4
+ FN:25,(anonymous_11)
5
+ FN:29,(anonymous_12)
6
+ FN:33,(anonymous_13)
7
+ FN:37,(anonymous_14)
8
+ FN:62,(anonymous_15)
9
+ FN:66,(anonymous_16)
10
+ FN:75,(anonymous_17)
11
+ FN:83,(anonymous_18)
12
+ FN:87,(anonymous_19)
13
+ FN:91,(anonymous_20)
14
+ FN:95,(anonymous_21)
15
+ FN:99,(anonymous_22)
16
+ FN:113,(anonymous_23)
17
+ FN:117,(anonymous_24)
18
+ FNF:15
19
+ FNH:2
20
+ FNDA:0,(anonymous_10)
21
+ FNDA:11,(anonymous_11)
22
+ FNDA:0,(anonymous_12)
23
+ FNDA:0,(anonymous_13)
24
+ FNDA:6,(anonymous_14)
25
+ FNDA:0,(anonymous_15)
26
+ FNDA:0,(anonymous_16)
27
+ FNDA:0,(anonymous_17)
28
+ FNDA:0,(anonymous_18)
29
+ FNDA:0,(anonymous_19)
30
+ FNDA:0,(anonymous_20)
31
+ FNDA:0,(anonymous_21)
32
+ FNDA:0,(anonymous_22)
33
+ FNDA:0,(anonymous_23)
34
+ FNDA:0,(anonymous_24)
35
+ DA:1,5
36
+ DA:3,5
37
+ DA:4,5
38
+ DA:5,5
39
+ DA:6,5
40
+ DA:8,5
41
+ DA:9,5
42
+ DA:10,5
43
+ DA:11,5
44
+ DA:12,5
45
+ DA:15,5
46
+ DA:17,5
47
+ DA:18,5
48
+ DA:19,5
49
+ DA:22,0
50
+ DA:26,11
51
+ DA:30,0
52
+ DA:34,0
53
+ DA:44,6
54
+ DA:45,6
55
+ DA:47,6
56
+ DA:48,6
57
+ DA:54,6
58
+ DA:55,3
59
+ DA:58,6
60
+ DA:63,0
61
+ DA:67,0
62
+ DA:72,0
63
+ DA:76,0
64
+ DA:77,0
65
+ DA:84,0
66
+ DA:88,0
67
+ DA:92,0
68
+ DA:96,0
69
+ DA:100,0
70
+ DA:105,0
71
+ DA:106,0
72
+ DA:107,0
73
+ DA:110,0
74
+ DA:114,0
75
+ DA:118,0
76
+ LF:41
77
+ LH:22
78
+ BRDA:54,0,0,3
79
+ BRDA:54,0,1,3
80
+ BRDA:77,1,0,0
81
+ BRDA:77,1,1,0
82
+ BRDA:77,1,2,0
83
+ BRDA:77,1,3,0
84
+ BRDA:106,2,0,0
85
+ BRDA:106,2,1,0
86
+ BRF:8
87
+ BRH:2
88
+ end_of_record
89
+ TN:
90
+ SF:src/Batch/ZendeskCreateWebhookConnector.ts
91
+ FN:19,(anonymous_1)
92
+ FN:23,(anonymous_2)
93
+ FN:32,(anonymous_3)
94
+ FN:41,(anonymous_4)
95
+ FN:41,(anonymous_5)
96
+ FN:77,(anonymous_6)
97
+ FN:81,(anonymous_7)
98
+ FNF:7
99
+ FNH:1
100
+ FNDA:5,(anonymous_1)
101
+ FNDA:0,(anonymous_2)
102
+ FNDA:0,(anonymous_3)
103
+ FNDA:0,(anonymous_4)
104
+ FNDA:0,(anonymous_5)
105
+ FNDA:0,(anonymous_6)
106
+ FNDA:0,(anonymous_7)
107
+ DA:1,5
108
+ DA:3,5
109
+ DA:4,5
110
+ DA:5,5
111
+ DA:8,5
112
+ DA:12,5
113
+ DA:17,5
114
+ DA:20,5
115
+ DA:26,0
116
+ DA:28,0
117
+ DA:29,0
118
+ DA:31,0
119
+ DA:32,0
120
+ DA:41,0
121
+ DA:43,0
122
+ DA:44,0
123
+ DA:59,0
124
+ DA:60,0
125
+ DA:62,0
126
+ DA:74,0
127
+ DA:78,0
128
+ DA:82,0
129
+ LF:22
130
+ LH:8
131
+ BRDA:38,0,0,0
132
+ BRDA:38,0,1,0
133
+ BRF:2
134
+ BRH:0
135
+ end_of_record
136
+ TN:
137
+ SF:src/Batch/ZendeskDeleteWebhookConnector.ts
138
+ FN:13,(anonymous_1)
139
+ FN:17,(anonymous_2)
140
+ FNF:2
141
+ FNH:1
142
+ FNDA:5,(anonymous_1)
143
+ FNDA:0,(anonymous_2)
144
+ DA:1,5
145
+ DA:3,5
146
+ DA:4,5
147
+ DA:5,5
148
+ DA:7,5
149
+ DA:9,5
150
+ DA:11,5
151
+ DA:14,5
152
+ DA:18,0
153
+ DA:19,0
154
+ DA:20,0
155
+ DA:21,0
156
+ DA:23,0
157
+ DA:24,0
158
+ DA:25,0
159
+ DA:26,0
160
+ DA:27,0
161
+ DA:28,0
162
+ DA:29,0
163
+ DA:30,0
164
+ DA:32,0
165
+ DA:33,0
166
+ DA:36,0
167
+ LF:23
168
+ LH:8
169
+ BRDA:23,0,0,0
170
+ BRDA:23,0,1,0
171
+ BRDA:27,1,0,0
172
+ BRDA:27,1,1,0
173
+ BRDA:27,2,0,0
174
+ BRDA:27,2,1,0
175
+ BRF:6
176
+ BRH:0
177
+ end_of_record
178
+ TN:
179
+ SF:src/Batch/ZendeskListTicketsBatch.ts
180
+ FN:9,(anonymous_1)
181
+ FN:13,(anonymous_2)
182
+ FNF:2
183
+ FNH:2
184
+ FNDA:5,(anonymous_1)
185
+ FNDA:2,(anonymous_2)
186
+ DA:1,5
187
+ DA:2,5
188
+ DA:5,5
189
+ DA:7,5
190
+ DA:10,5
191
+ DA:14,2
192
+ DA:15,2
193
+ DA:16,2
194
+ DA:22,2
195
+ DA:23,2
196
+ DA:25,2
197
+ DA:26,2
198
+ DA:27,1
199
+ DA:30,2
200
+ LF:14
201
+ LH:14
202
+ BRDA:25,0,0,2
203
+ BRDA:25,0,1,0
204
+ BRDA:26,1,0,1
205
+ BRDA:26,1,1,1
206
+ BRF:4
207
+ BRH:3
208
+ end_of_record
209
+ TN:
210
+ SF:src/Batch/ZendeskListUsersBatch.ts
211
+ FN:10,(anonymous_1)
212
+ FN:14,(anonymous_2)
213
+ FNF:2
214
+ FNH:2
215
+ FNDA:5,(anonymous_1)
216
+ FNDA:1,(anonymous_2)
217
+ DA:1,5
218
+ DA:2,5
219
+ DA:6,5
220
+ DA:8,5
221
+ DA:11,5
222
+ DA:15,1
223
+ DA:16,1
224
+ DA:17,1
225
+ DA:23,1
226
+ DA:24,1
227
+ DA:26,1
228
+ DA:27,1
229
+ DA:28,0
230
+ DA:31,1
231
+ LF:14
232
+ LH:13
233
+ BRDA:26,0,0,1
234
+ BRDA:26,0,1,0
235
+ BRDA:27,1,0,0
236
+ BRDA:27,1,1,1
237
+ BRF:4
238
+ BRH:2
239
+ end_of_record
240
+ TN:
241
+ SF:src/Connector/ZendeskCreateTicketConnector.ts
242
+ FN:9,(anonymous_1)
243
+ FN:13,(anonymous_2)
244
+ FNF:2
245
+ FNH:2
246
+ FNDA:5,(anonymous_1)
247
+ FNDA:1,(anonymous_2)
248
+ DA:1,5
249
+ DA:2,5
250
+ DA:5,5
251
+ DA:7,5
252
+ DA:10,5
253
+ DA:14,1
254
+ DA:16,1
255
+ DA:17,1
256
+ DA:18,1
257
+ DA:20,1
258
+ LF:10
259
+ LH:10
260
+ BRF:0
261
+ BRH:0
262
+ end_of_record
263
+ TN:
264
+ SF:src/Connector/ZendeskCreateTriggerConnector.ts
265
+ FN:10,(anonymous_1)
266
+ FN:14,(anonymous_2)
267
+ FN:31,(anonymous_3)
268
+ FN:35,(anonymous_4)
269
+ FNF:4
270
+ FNH:4
271
+ FNDA:5,(anonymous_1)
272
+ FNDA:1,(anonymous_2)
273
+ FNDA:1,(anonymous_3)
274
+ FNDA:1,(anonymous_4)
275
+ DA:1,5
276
+ DA:2,5
277
+ DA:6,5
278
+ DA:8,5
279
+ DA:11,5
280
+ DA:17,1
281
+ DA:19,1
282
+ DA:26,1
283
+ DA:28,1
284
+ DA:32,1
285
+ DA:36,1
286
+ LF:11
287
+ LH:11
288
+ BRF:0
289
+ BRH:0
290
+ end_of_record
291
+ TN:
292
+ SF:src/Connector/ZendeskCreateUserConnector.ts
293
+ FN:9,(anonymous_1)
294
+ FN:13,(anonymous_2)
295
+ FNF:2
296
+ FNH:2
297
+ FNDA:5,(anonymous_1)
298
+ FNDA:1,(anonymous_2)
299
+ DA:1,5
300
+ DA:2,5
301
+ DA:5,5
302
+ DA:7,5
303
+ DA:10,5
304
+ DA:14,1
305
+ DA:16,1
306
+ DA:17,1
307
+ DA:18,1
308
+ DA:20,1
309
+ DA:22,1
310
+ LF:11
311
+ LH:11
312
+ BRF:0
313
+ BRH:0
314
+ end_of_record
315
+ TN:
316
+ SF:src/Connector/ZendeskDeleteTriggerConnector.ts
317
+ FN:9,(anonymous_1)
318
+ FN:13,(anonymous_2)
319
+ FN:32,(anonymous_3)
320
+ FN:36,(anonymous_4)
321
+ FNF:4
322
+ FNH:1
323
+ FNDA:5,(anonymous_1)
324
+ FNDA:0,(anonymous_2)
325
+ FNDA:0,(anonymous_3)
326
+ FNDA:0,(anonymous_4)
327
+ DA:1,5
328
+ DA:2,5
329
+ DA:5,5
330
+ DA:7,5
331
+ DA:10,5
332
+ DA:16,0
333
+ DA:18,0
334
+ DA:27,0
335
+ DA:29,0
336
+ DA:33,0
337
+ DA:37,0
338
+ LF:11
339
+ LH:5
340
+ BRF:0
341
+ BRH:0
342
+ end_of_record
343
+ TN:
344
+ SF:test/dataProvider.ts
345
+ FN:17,init
346
+ FNF:1
347
+ FNH:1
348
+ FNDA:5,init
349
+ DA:1,5
350
+ DA:2,5
351
+ DA:3,5
352
+ DA:4,5
353
+ DA:5,5
354
+ DA:6,5
355
+ DA:7,5
356
+ DA:8,5
357
+ DA:9,5
358
+ DA:10,5
359
+ DA:11,5
360
+ DA:12,5
361
+ DA:13,5
362
+ DA:14,5
363
+ DA:15,5
364
+ DA:17,5
365
+ DA:18,5
366
+ DA:28,5
367
+ DA:38,5
368
+ DA:39,5
369
+ DA:41,5
370
+ DA:42,5
371
+ DA:43,5
372
+ DA:44,5
373
+ DA:46,5
374
+ DA:50,5
375
+ DA:52,5
376
+ DA:56,5
377
+ DA:58,5
378
+ DA:62,5
379
+ DA:64,5
380
+ DA:68,5
381
+ DA:70,5
382
+ DA:71,5
383
+ DA:72,5
384
+ DA:73,5
385
+ LF:36
386
+ LH:36
387
+ BRF:0
388
+ BRH:0
389
+ end_of_record
@@ -0,0 +1,16 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
3
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
4
+ export declare const ZENDESK_CREATE_WEBHOOK = "zendesk-create-webhook";
5
+ export default class ZendeskCreateWebhookConnector extends ABatchNode {
6
+ getName(): string;
7
+ processAction(dto: BatchProcessDto<ZendeskCreateWebhookInput>): Promise<BatchProcessDto>;
8
+ protected getData(dto: ProcessDto<ZendeskCreateWebhookInput>): ZendeskCreateWebhookInput;
9
+ protected getRandomToken(): string;
10
+ }
11
+ export interface ZendeskCreateWebhookInput {
12
+ topology: string;
13
+ node: string;
14
+ name: string;
15
+ events: string[];
16
+ }
@@ -0,0 +1,62 @@
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.ZENDESK_CREATE_WEBHOOK = void 0;
7
+ const Webhook_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Application/Database/Webhook"));
8
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
9
+ const TopologyRunner_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Topology/TopologyRunner"));
10
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
11
+ const crypto_1 = __importDefault(require("crypto"));
12
+ exports.ZENDESK_CREATE_WEBHOOK = 'zendesk-create-webhook';
13
+ class ZendeskCreateWebhookConnector extends ABatchNode_1.default {
14
+ getName() {
15
+ return exports.ZENDESK_CREATE_WEBHOOK;
16
+ }
17
+ async processAction(dto) {
18
+ const repo = this.getDbClient().getRepository(Webhook_1.default);
19
+ const app = this.getApplication();
20
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
21
+ const registered = await repo.findMany({ users: [appInstall.getUser()], apps: [appInstall.getName()] });
22
+ const all = app.getWebhookSubscriptions().map((sub) => ({
23
+ event: sub.getName(),
24
+ token: this.getRandomToken(),
25
+ node: sub.getNode(),
26
+ name: sub.getName(),
27
+ topology: sub.getTopology(),
28
+ events: JSON.parse(sub.getParameters().events || '[]'),
29
+ }));
30
+ const unregistered = all.filter((wh) => !registered.find((reg) => reg.getName() === wh.event));
31
+ for (const toRegister of unregistered) {
32
+ const reqBody = {
33
+ webhook: {
34
+ endpoint: TopologyRunner_1.default.getWebhookUrl(toRegister.topology, toRegister.node, toRegister.token),
35
+ http_method: 'POST',
36
+ name: toRegister.name,
37
+ request_format: 'json',
38
+ status: 'active',
39
+ subscriptions: toRegister.events,
40
+ },
41
+ };
42
+ const requestDto = await app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.POST, '/webhooks', reqBody);
43
+ const data = (await this.getSender().send(requestDto)).getJsonBody();
44
+ await repo.insert(new Webhook_1.default()
45
+ .setWebhookId(data.webhook.id)
46
+ .setUser(appInstall.getUser())
47
+ .setNode(toRegister.node)
48
+ .setToken(toRegister.token)
49
+ .setApplication(app.getName())
50
+ .setTopology(toRegister.topology)
51
+ .setName(data.webhook.name));
52
+ }
53
+ return dto;
54
+ }
55
+ getData(dto) {
56
+ return dto.getJsonData();
57
+ }
58
+ getRandomToken() {
59
+ return crypto_1.default.randomBytes(64).toString('hex');
60
+ }
61
+ }
62
+ exports.default = ZendeskCreateWebhookConnector;
@@ -0,0 +1,7 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
3
+ export declare const ZENDESK_DELETE_WEBHOOK = "zendesk-delete-webhook";
4
+ export default class ZendeskDeleteWebhookConnector extends ABatchNode {
5
+ getName(): string;
6
+ processAction(dto: BatchProcessDto): Promise<BatchProcessDto>;
7
+ }
@@ -0,0 +1,37 @@
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.ZENDESK_DELETE_WEBHOOK = void 0;
7
+ const Webhook_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Application/Database/Webhook"));
8
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
9
+ const OnRepeatException_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Exception/OnRepeatException"));
10
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
11
+ const http_status_codes_1 = require("http-status-codes");
12
+ exports.ZENDESK_DELETE_WEBHOOK = 'zendesk-delete-webhook';
13
+ class ZendeskDeleteWebhookConnector extends ABatchNode_1.default {
14
+ getName() {
15
+ return exports.ZENDESK_DELETE_WEBHOOK;
16
+ }
17
+ async processAction(dto) {
18
+ const app = this.getApplication();
19
+ const appInstall = await this.getApplicationInstallFromProcess(dto, null);
20
+ const repo = this.getDbClient().getRepository(Webhook_1.default);
21
+ const webhook = await repo.findOne({ users: [appInstall.getUser()], apps: [appInstall.getName()] });
22
+ if (webhook) {
23
+ const url = `/webhooks/${webhook.getWebhookId()}`;
24
+ const requestDto = await app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.DELETE, url);
25
+ const res = await this.getSender().send(requestDto);
26
+ if (res.getResponseCode() !== http_status_codes_1.StatusCodes.OK && res.getResponseCode() !== http_status_codes_1.StatusCodes.NOT_FOUND) {
27
+ webhook.setUnsubscribeFailed(true);
28
+ await repo.update(webhook);
29
+ throw new OnRepeatException_1.default(300, 12, res.getBody());
30
+ }
31
+ await repo.remove(webhook);
32
+ dto.setBatchCursor('1', true);
33
+ }
34
+ return dto;
35
+ }
36
+ }
37
+ exports.default = ZendeskDeleteWebhookConnector;
@@ -0,0 +1,46 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
3
+ export declare const NAME = "zendesk-list-tickets-batch";
4
+ export default class ZendeskListTicketsBatch extends ABatchNode {
5
+ getName(): string;
6
+ processAction(dto: BatchProcessDto): Promise<BatchProcessDto>;
7
+ }
8
+ export interface IOutput {
9
+ assignee_id: number;
10
+ collaborator_ids: number[];
11
+ created_at: string;
12
+ custom_fields: [
13
+ {
14
+ id: number;
15
+ value: string;
16
+ }
17
+ ];
18
+ description: string;
19
+ external_id: string;
20
+ follower_ids: number[];
21
+ group_id: number;
22
+ has_incidents: boolean;
23
+ id: number;
24
+ organization_id: number;
25
+ priority: string;
26
+ problem_id: number;
27
+ raw_subject: string;
28
+ recipient: string;
29
+ requester_id: number;
30
+ satisfaction_rating: {
31
+ comment: string;
32
+ id: number;
33
+ score: string;
34
+ };
35
+ sharing_agreement_ids: number[];
36
+ status: string;
37
+ subject: string;
38
+ submitter_id: number;
39
+ tags: string[];
40
+ type: string;
41
+ updated_at: string;
42
+ url: string;
43
+ via: {
44
+ channel: string;
45
+ };
46
+ }
@@ -0,0 +1,27 @@
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.NAME = void 0;
7
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'zendesk-list-tickets-batch';
10
+ class ZendeskListTicketsBatch extends ABatchNode_1.default {
11
+ getName() {
12
+ return exports.NAME;
13
+ }
14
+ async processAction(dto) {
15
+ const offset = dto.getBatchCursor('1');
16
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
17
+ const req = await this.getApplication().getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.GET, `/tickets.json?per_page=100&page=${offset}`);
18
+ const resp = await this.getSender().send(req, [200]);
19
+ const response = resp.getJsonBody();
20
+ dto.setItemList(response.tickets ?? []);
21
+ if (response.next_page !== null) {
22
+ dto.setBatchCursor((Number(offset) + 1).toString());
23
+ }
24
+ return dto;
25
+ }
26
+ }
27
+ exports.default = ZendeskListTicketsBatch;
@@ -0,0 +1,11 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
3
+ export declare const NAME = "zendesk-list-users-batch";
4
+ export default class ZendeskListUsersBatch extends ABatchNode {
5
+ getName(): string;
6
+ processAction(dto: BatchProcessDto): Promise<BatchProcessDto>;
7
+ }
8
+ export interface IOutput {
9
+ id: number;
10
+ name: string;
11
+ }
@@ -0,0 +1,27 @@
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.NAME = void 0;
7
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'zendesk-list-users-batch';
10
+ class ZendeskListUsersBatch extends ABatchNode_1.default {
11
+ getName() {
12
+ return exports.NAME;
13
+ }
14
+ async processAction(dto) {
15
+ const offset = dto.getBatchCursor('1');
16
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
17
+ const req = await this.getApplication().getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.GET, `/users.json?per_page=100&page=${offset}`);
18
+ const resp = await this.getSender().send(req, [200]);
19
+ const response = resp.getJsonBody();
20
+ dto.setItemList(response.users ?? []);
21
+ if (response.meta.has_more) {
22
+ dto.setBatchCursor((Number(offset) + 1).toString());
23
+ }
24
+ return dto;
25
+ }
26
+ }
27
+ exports.default = ZendeskListUsersBatch;
@@ -0,0 +1,57 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
3
+ export declare const NAME = "zendesk-create-ticket-connector";
4
+ export default class ZendeskCreateTicketConnector extends AConnector {
5
+ getName(): string;
6
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOutput>>;
7
+ }
8
+ export interface IInput {
9
+ ticket: {
10
+ comment: {
11
+ body: string;
12
+ };
13
+ priority: string;
14
+ subject: string;
15
+ };
16
+ }
17
+ export interface IOutput {
18
+ ticket: {
19
+ assignee_id: number;
20
+ collaborator_ids: number[];
21
+ created_at: string;
22
+ custom_fields: [
23
+ {
24
+ id: number;
25
+ value: string;
26
+ }
27
+ ];
28
+ description: string;
29
+ external_id: string;
30
+ follower_ids: number[];
31
+ group_id: number;
32
+ has_incidents: boolean;
33
+ id: number;
34
+ organization_id: number;
35
+ priority: string;
36
+ problem_id: number;
37
+ raw_subject: string;
38
+ recipient: string;
39
+ requester_id: number;
40
+ satisfaction_rating: {
41
+ comment: string;
42
+ id: number;
43
+ score: string;
44
+ };
45
+ sharing_agreement_ids: number[];
46
+ status: string;
47
+ subject: string;
48
+ submitter_id: number;
49
+ tags: string[];
50
+ type: string;
51
+ updated_at: string;
52
+ url: string;
53
+ via: {
54
+ channel: string;
55
+ };
56
+ };
57
+ }
@@ -0,0 +1,22 @@
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.NAME = void 0;
7
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
8
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
9
+ exports.NAME = 'zendesk-create-ticket-connector';
10
+ class ZendeskCreateTicketConnector extends AConnector_1.default {
11
+ getName() {
12
+ return exports.NAME;
13
+ }
14
+ async processAction(dto) {
15
+ const body = dto.getJsonData();
16
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
17
+ const req = await this.getApplication().getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.POST, '/tickets.json', body);
18
+ const resp = await this.getSender().send(req, [201]);
19
+ return dto.setNewJsonData(resp.getJsonBody());
20
+ }
21
+ }
22
+ exports.default = ZendeskCreateTicketConnector;