@orchesty/connector-zendesk 1.0.0 → 1.0.1

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 (66) hide show
  1. package/dist/package.json +4 -1
  2. package/package.json +4 -1
  3. package/CHANGELOG.md +0 -7
  4. package/coverage/clover.xml +0 -241
  5. package/coverage/coverage-final.json +0 -11
  6. package/coverage/lcov-report/base.css +0 -224
  7. package/coverage/lcov-report/block-navigation.js +0 -87
  8. package/coverage/lcov-report/favicon.png +0 -0
  9. package/coverage/lcov-report/index.html +0 -161
  10. package/coverage/lcov-report/prettify.css +0 -1
  11. package/coverage/lcov-report/prettify.js +0 -2
  12. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  13. package/coverage/lcov-report/sorter.js +0 -210
  14. package/coverage/lcov-report/src/Batch/ZendeskCreateWebhookConnector.ts.html +0 -373
  15. package/coverage/lcov-report/src/Batch/ZendeskDeleteWebhookConnector.ts.html +0 -202
  16. package/coverage/lcov-report/src/Batch/ZendeskListTicketsBatch.ts.html +0 -337
  17. package/coverage/lcov-report/src/Batch/ZendeskListUsersBatch.ts.html +0 -247
  18. package/coverage/lcov-report/src/Batch/index.html +0 -161
  19. package/coverage/lcov-report/src/Connector/ZendeskCreateTicketConnector.ts.html +0 -319
  20. package/coverage/lcov-report/src/Connector/ZendeskCreateTriggerConnector.ts.html +0 -226
  21. package/coverage/lcov-report/src/Connector/ZendeskCreateUserConnector.ts.html +0 -265
  22. package/coverage/lcov-report/src/Connector/ZendeskDeleteTriggerConnector.ts.html +0 -223
  23. package/coverage/lcov-report/src/Connector/index.html +0 -161
  24. package/coverage/lcov-report/src/ZendeskApplication.ts.html +0 -448
  25. package/coverage/lcov-report/src/index.html +0 -116
  26. package/coverage/lcov-report/test/dataProvider.ts.html +0 -307
  27. package/coverage/lcov-report/test/index.html +0 -116
  28. package/coverage/lcov.info +0 -389
  29. package/jest.config.js +0 -13
  30. package/src/Batch/ZendeskCreateWebhookConnector.ts +0 -96
  31. package/src/Batch/ZendeskDeleteWebhookConnector.ts +0 -39
  32. package/src/Batch/ZendeskListTicketsBatch.ts +0 -84
  33. package/src/Batch/ZendeskListUsersBatch.ts +0 -54
  34. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/1-mock.json +0 -57
  35. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/input.json +0 -6
  36. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/mock.json +0 -106
  37. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output.json +0 -18
  38. package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output1.json +0 -12
  39. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/input.json +0 -6
  40. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/mock.json +0 -161
  41. package/src/Batch/__tests__/Data/ZendeskListUsersBatch/output.json +0 -19
  42. package/src/Batch/__tests__/ZendeskListTicketsBatch.ts +0 -17
  43. package/src/Batch/__tests__/ZendeskListUsersBatch.ts +0 -17
  44. package/src/Connector/ZendeskCreateTicketConnector.ts +0 -78
  45. package/src/Connector/ZendeskCreateTriggerConnector.ts +0 -47
  46. package/src/Connector/ZendeskCreateUserConnector.ts +0 -60
  47. package/src/Connector/ZendeskDeleteTriggerConnector.ts +0 -46
  48. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/input.json +0 -14
  49. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/mock.json +0 -194
  50. package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/output.json +0 -194
  51. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/input.json +0 -11
  52. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/mock.json +0 -31
  53. package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/output.json +0 -29
  54. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/input.json +0 -25
  55. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/mock.json +0 -45
  56. package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/output.json +0 -44
  57. package/src/Connector/__tests__/ZendeskCreateTicketConnector.ts +0 -17
  58. package/src/Connector/__tests__/ZendeskCreateTriggerConnector.ts +0 -17
  59. package/src/Connector/__tests__/ZendeskCreateUserConnector.ts +0 -17
  60. package/src/ZendeskApplication.ts +0 -121
  61. package/src/types/trigger.types.ts +0 -19
  62. package/src/types/webhook.types.ts +0 -20
  63. package/test/dataProvider.ts +0 -74
  64. package/tsconfig.json +0 -8
  65. package/tsconfig.prod.json +0 -13
  66. 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
- }