@orchesty/connector-zendesk 1.0.0 → 2.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 (70) hide show
  1. package/README.md +97 -0
  2. package/dist/Batch/ZendeskCreateWebhookConnector.js +6 -1
  3. package/dist/Batch/ZendeskDeleteWebhookConnector.js +5 -1
  4. package/dist/ZendeskApplication.js +1 -1
  5. package/dist/package.json +5 -2
  6. package/package.json +5 -2
  7. package/CHANGELOG.md +0 -7
  8. package/coverage/clover.xml +0 -241
  9. package/coverage/coverage-final.json +0 -11
  10. package/coverage/lcov-report/base.css +0 -224
  11. package/coverage/lcov-report/block-navigation.js +0 -87
  12. package/coverage/lcov-report/favicon.png +0 -0
  13. package/coverage/lcov-report/index.html +0 -161
  14. package/coverage/lcov-report/prettify.css +0 -1
  15. package/coverage/lcov-report/prettify.js +0 -2
  16. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  17. package/coverage/lcov-report/sorter.js +0 -210
  18. package/coverage/lcov-report/src/Batch/ZendeskCreateWebhookConnector.ts.html +0 -373
  19. package/coverage/lcov-report/src/Batch/ZendeskDeleteWebhookConnector.ts.html +0 -202
  20. package/coverage/lcov-report/src/Batch/ZendeskListTicketsBatch.ts.html +0 -337
  21. package/coverage/lcov-report/src/Batch/ZendeskListUsersBatch.ts.html +0 -247
  22. package/coverage/lcov-report/src/Batch/index.html +0 -161
  23. package/coverage/lcov-report/src/Connector/ZendeskCreateTicketConnector.ts.html +0 -319
  24. package/coverage/lcov-report/src/Connector/ZendeskCreateTriggerConnector.ts.html +0 -226
  25. package/coverage/lcov-report/src/Connector/ZendeskCreateUserConnector.ts.html +0 -265
  26. package/coverage/lcov-report/src/Connector/ZendeskDeleteTriggerConnector.ts.html +0 -223
  27. package/coverage/lcov-report/src/Connector/index.html +0 -161
  28. package/coverage/lcov-report/src/ZendeskApplication.ts.html +0 -448
  29. package/coverage/lcov-report/src/index.html +0 -116
  30. package/coverage/lcov-report/test/dataProvider.ts.html +0 -307
  31. package/coverage/lcov-report/test/index.html +0 -116
  32. package/coverage/lcov.info +0 -389
  33. package/jest.config.js +0 -13
  34. package/src/Batch/ZendeskCreateWebhookConnector.ts +0 -96
  35. package/src/Batch/ZendeskDeleteWebhookConnector.ts +0 -39
  36. package/src/Batch/ZendeskListTicketsBatch.ts +0 -84
  37. package/src/Batch/ZendeskListUsersBatch.ts +0 -54
  38. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/1-mock.json +0 -57
  39. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/input.json +0 -6
  40. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/mock.json +0 -106
  41. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output.json +0 -18
  42. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output1.json +0 -12
  43. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/input.json +0 -6
  44. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/mock.json +0 -161
  45. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/output.json +0 -19
  46. package/src/Batch/__tests__/ZendeskListTicketsBatch.ts +0 -17
  47. package/src/Batch/__tests__/ZendeskListUsersBatch.ts +0 -17
  48. package/src/Connector/ZendeskCreateTicketConnector.ts +0 -78
  49. package/src/Connector/ZendeskCreateTriggerConnector.ts +0 -47
  50. package/src/Connector/ZendeskCreateUserConnector.ts +0 -60
  51. package/src/Connector/ZendeskDeleteTriggerConnector.ts +0 -46
  52. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/input.json +0 -14
  53. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/mock.json +0 -194
  54. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/output.json +0 -194
  55. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/input.json +0 -11
  56. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/mock.json +0 -31
  57. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/output.json +0 -29
  58. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/input.json +0 -25
  59. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/mock.json +0 -45
  60. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/output.json +0 -44
  61. package/src/Connector/__tests__/ZendeskCreateTicketConnector.ts +0 -17
  62. package/src/Connector/__tests__/ZendeskCreateTriggerConnector.ts +0 -17
  63. package/src/Connector/__tests__/ZendeskCreateUserConnector.ts +0 -17
  64. package/src/ZendeskApplication.ts +0 -121
  65. package/src/types/trigger.types.ts +0 -19
  66. package/src/types/webhook.types.ts +0 -20
  67. package/test/dataProvider.ts +0 -74
  68. package/tsconfig.json +0 -8
  69. package/tsconfig.prod.json +0 -13
  70. package/tsconfig.prod.tsbuildinfo +0 -1
@@ -1,17 +0,0 @@
1
- import { container } from '@orchesty/nodejs-connectors/test/TestAbstract';
2
- import NodeTester from '@orchesty/nodejs-sdk/dist/test/Testers/NodeTester';
3
- import init from '../../../test/dataProvider';
4
- import { NAME as ZENDESK_CREATE_USER_CONNECTOR } from '../ZendeskCreateUserConnector';
5
-
6
- let tester: NodeTester;
7
-
8
- describe('Tests for ZendeskCreateUserConnector', () => {
9
- beforeEach(() => {
10
- tester = new NodeTester(container, __filename);
11
- init();
12
- });
13
-
14
- it('process - ok', async () => {
15
- await tester.testConnector(ZENDESK_CREATE_USER_CONNECTOR);
16
- });
17
- });
@@ -1,121 +0,0 @@
1
- import CoreFormsEnum, { getFormName } from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
2
- import { ApplicationInstall } from '@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall';
3
- import Field from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Field';
4
- import FieldType from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FieldType';
5
- import Form from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/Form';
6
- import FormStack from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Form/FormStack';
7
- import WebhookSubscription from '@orchesty/nodejs-sdk/dist/lib/Application/Model/Webhook/WebhookSubscription';
8
- import OAuth2Dto from '@orchesty/nodejs-sdk/dist/lib/Authorization/Provider/Dto/OAuth2Dto';
9
- import ScopeSeparatorEnum from '@orchesty/nodejs-sdk/dist/lib/Authorization/ScopeSeparatorEnum';
10
- import AOAuth2Application from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/AOAuth2Application';
11
- import { CLIENT_ID, CLIENT_SECRET } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/IOAuth2Application';
12
- import RequestDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/RequestDto';
13
- import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
14
- import AProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/AProcessDto';
15
- import { CommonHeaders, JSON_TYPE } from '@orchesty/nodejs-sdk/dist/lib/Utils/Headers';
16
-
17
- export const SUBDOMAIN = 'subdomain';
18
- export const NAME = 'zendesk';
19
- export default class ZendeskApplication extends AOAuth2Application {
20
-
21
- public getDescription(): string {
22
- return 'Customer support software that helps companies manage customer problems through a ticketing system';
23
- }
24
-
25
- public getName(): string {
26
- return NAME;
27
- }
28
-
29
- public getPublicName(): string {
30
- return 'Zendesk';
31
- }
32
-
33
- public getLogo(): string {
34
- return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiMwMzM2M0Q7fQo8L3N0eWxlPgo8Zz4KCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik00Ni4yLDMyLjJ2NTUuNEgwLjNMNDYuMiwzMi4yeiBNNDYuMiwxMi4zYzAsMTIuNy0xMC4zLDIzLTIzLDIzcy0yMy0xMC4zLTIzLTIzTDQ2LjIsMTIuM3ogTTUzLjgsODcuNwoJCWMwLTEyLjcsMTAuMy0yMywyMy0yM3MyMywxMC4zLDIzLDIzSDUzLjh6IE01My44LDY3LjhWMTIuM2g0NS45TDUzLjgsNjcuOHoiLz4KPC9nPgo8L3N2Zz4K';
35
- }
36
-
37
- public getRequestDto(
38
- dto: AProcessDto,
39
- applicationInstall: ApplicationInstall,
40
- method: HttpMethods,
41
- _url?: string,
42
- data?: unknown,
43
- ): Promise<RequestDto> | RequestDto {
44
- const subdomain = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM][SUBDOMAIN];
45
- const url = `https://${subdomain}.zendesk.com/api/v2${_url}`;
46
-
47
- const request = new RequestDto(url, method, dto);
48
- request.setHeaders({
49
- [CommonHeaders.CONTENT_TYPE]: JSON_TYPE,
50
- [CommonHeaders.ACCEPT]: JSON_TYPE,
51
- [CommonHeaders.AUTHORIZATION]: `Bearer ${this.getAccessToken(applicationInstall)}`,
52
- });
53
-
54
- if (data) {
55
- request.setJsonBody(data);
56
- }
57
-
58
- return request;
59
- }
60
-
61
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
62
- public getScopes(applicationInstall: ApplicationInstall): string[] {
63
- return ['read', 'write'];
64
- }
65
-
66
- public getFormStack(): FormStack {
67
- const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, getFormName(CoreFormsEnum.AUTHORIZATION_FORM))
68
- .addField(new Field(FieldType.TEXT, SUBDOMAIN, 'Subdomain', undefined, true))
69
- .addField(new Field(FieldType.TEXT, CLIENT_ID, 'Client Id', undefined, true))
70
- .addField(new Field(FieldType.TEXT, CLIENT_SECRET, 'Client Secret', undefined, true));
71
-
72
- return new FormStack().addForm(form);
73
- }
74
-
75
- public isAuthorized(applicationInstall: ApplicationInstall): boolean {
76
- const authorizationForm = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
77
- return super.isAuthorized(applicationInstall)
78
- && authorizationForm?.[SUBDOMAIN]
79
- && authorizationForm?.[CLIENT_ID]
80
- && authorizationForm?.[CLIENT_SECRET];
81
- }
82
-
83
- public getAuthUrlWithSubdomain(applicationInstall: ApplicationInstall): string {
84
- return `https://${applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM][SUBDOMAIN]}.zendesk.com/oauth/authorizations/new`;
85
- }
86
-
87
- public getAuthUrl(): string {
88
- throw new Error(`Dont use [${this.getAuthUrl.name}] use [${this.getAuthUrlWithSubdomain.bind(this).name}] instead.`);
89
- }
90
-
91
- public getTokenUrlWithSubdomain(applicationInstall: ApplicationInstall): string {
92
- return `https://${applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM][SUBDOMAIN]}.zendesk.com/oauth/tokens`;
93
- }
94
-
95
- public getTokenUrl(): string {
96
- throw new Error(`Dont use [${this.getAuthUrl.name}] use [${this.getTokenUrlWithSubdomain.bind(this).name}] instead.`);
97
- }
98
-
99
- public createDto(applicationInstall: ApplicationInstall, redirectUrl?: string): OAuth2Dto {
100
- const dto = new OAuth2Dto(
101
- applicationInstall,
102
- this.getAuthUrlWithSubdomain(applicationInstall),
103
- this.getTokenUrlWithSubdomain(applicationInstall),
104
- );
105
- dto.setCustomAppDependencies(applicationInstall.getUser(), applicationInstall.getName());
106
- if (redirectUrl) {
107
- dto.setRedirectUrl(redirectUrl);
108
- }
109
-
110
- return dto;
111
- }
112
-
113
- public getWebhookSubscriptions(): WebhookSubscription[] {
114
- return [];
115
- }
116
-
117
- protected getScopesSeparator(): string {
118
- return ScopeSeparatorEnum.SPACE;
119
- }
120
-
121
- }
@@ -1,19 +0,0 @@
1
- /* eslint-disable */
2
- export interface ZendeskTrigger {
3
- actions: { field: string, value: string }[],
4
- active: boolean,
5
- category_id: string;
6
- conditions: Record<string, {
7
- field: string;
8
- operator: string;
9
- value: string;
10
- }[]>,
11
- created_at: string;
12
- description: string;
13
- id: number;
14
- position: number;
15
- raw_title: string;
16
- title: string;
17
- updated_at: string;
18
- url: string;
19
- }
@@ -1,20 +0,0 @@
1
- /* eslint-disable */
2
- export interface ZendeskWebhook {
3
- authentication: {
4
- add_position: string;
5
- data: Record<string, string>,
6
- type: string;
7
- },
8
- created_at: string;
9
- created_by: string;
10
- custom_headers: Record<string, string>,
11
- endpoint: string;
12
- http_method: string;
13
- id: string;
14
- name: string;
15
- request_format: string;
16
- status: string;
17
- subscriptions: string[];
18
- updated_at: string;
19
- updated_by: string;
20
- }
@@ -1,74 +0,0 @@
1
- import { appInstall, DEFAULT_ACCESS_TOKEN, DEFAULT_CLIENT_SECRET, DEFAULT_USER } from '@orchesty/nodejs-connectors/test/DataProvider';
2
- import { container, db, oauth2Provider, sender } from '@orchesty/nodejs-connectors/test/TestAbstract';
3
- import CoreFormsEnum from '@orchesty/nodejs-sdk/dist/lib/Application/Base/CoreFormsEnum';
4
- import { ACCESS_TOKEN } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Provider/OAuth2/OAuth2Provider';
5
- import { TOKEN } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/Basic/ABasicApplication';
6
- import { CLIENT_ID, CLIENT_SECRET } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/IOAuth2Application';
7
- import ZendeskCreateWebhookConnector from '../src/Batch/ZendeskCreateWebhookConnector';
8
- import ZendeskDeleteWebhookConnector from '../src/Batch/ZendeskDeleteWebhookConnector';
9
- import ZendeskListTicketsBatch from '../src/Batch/ZendeskListTicketsBatch';
10
- import ZendeskListUsersBatch from '../src/Batch/ZendeskListUsersBatch';
11
- import ZendeskCreateTicketConnector from '../src/Connector/ZendeskCreateTicketConnector';
12
- import ZendeskCreateTriggerConnector from '../src/Connector/ZendeskCreateTriggerConnector';
13
- import ZendeskCreateUserConnector from '../src/Connector/ZendeskCreateUserConnector';
14
- import ZendeskDeleteTriggerConnector from '../src/Connector/ZendeskDeleteTriggerConnector';
15
- import ZendeskApplication, { NAME as ZENDESK_APP, SUBDOMAIN } from '../src/ZendeskApplication';
16
-
17
- export default function init(): void {
18
- appInstall(ZENDESK_APP, DEFAULT_USER, {
19
- [CoreFormsEnum.AUTHORIZATION_FORM]: {
20
- [CLIENT_ID]: DEFAULT_USER,
21
- [CLIENT_SECRET]: DEFAULT_CLIENT_SECRET,
22
- [SUBDOMAIN]: 'hbtest8393',
23
- [TOKEN]: {
24
- [ACCESS_TOKEN]: DEFAULT_ACCESS_TOKEN,
25
- },
26
- },
27
- });
28
- appInstall(ZENDESK_APP, DEFAULT_USER, {
29
- [CoreFormsEnum.AUTHORIZATION_FORM]: {
30
- [CLIENT_ID]: DEFAULT_USER,
31
- [CLIENT_SECRET]: DEFAULT_CLIENT_SECRET,
32
- [SUBDOMAIN]: 'hbtest8393',
33
- [TOKEN]: {
34
- [ACCESS_TOKEN]: DEFAULT_ACCESS_TOKEN,
35
- },
36
- },
37
- });
38
- const app = new ZendeskApplication(oauth2Provider);
39
- container.setApplication(app);
40
-
41
- const createUser = new ZendeskCreateUserConnector();
42
- const createTicket = new ZendeskCreateTicketConnector();
43
- const listUser = new ZendeskListUsersBatch();
44
- const listTicket = new ZendeskListTicketsBatch();
45
-
46
- createUser
47
- .setSender(sender)
48
- .setDb(db)
49
- .setApplication(app);
50
- container.setConnector(createUser);
51
-
52
- createTicket
53
- .setSender(sender)
54
- .setDb(db)
55
- .setApplication(app);
56
- container.setConnector(createTicket);
57
-
58
- listUser
59
- .setSender(sender)
60
- .setDb(db)
61
- .setApplication(app);
62
- container.setBatch(listUser);
63
-
64
- listTicket
65
- .setSender(sender)
66
- .setDb(db)
67
- .setApplication(app);
68
- container.setBatch(listTicket);
69
-
70
- container.setNode(new ZendeskCreateWebhookConnector(), app);
71
- container.setNode(new ZendeskDeleteWebhookConnector(), app);
72
- container.setNode(new ZendeskCreateTriggerConnector(), app);
73
- container.setNode(new ZendeskDeleteTriggerConnector(), app);
74
- }
package/tsconfig.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "extends": "../../tsconfig.json",
3
- "compilerOptions": {
4
- "outDir": "./dist",
5
- "composite": true
6
- },
7
- "include": ["src", "test", "../../test"]
8
- }
@@ -1,13 +0,0 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "compilerOptions": {
4
- "rootDir": "./src",
5
- },
6
- "include": [
7
- "src",
8
- ],
9
- "exclude": [
10
- "node_modules",
11
- "src/**/__tests__",
12
- ]
13
- }