@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.
- package/dist/package.json +4 -1
- package/package.json +4 -1
- package/CHANGELOG.md +0 -7
- package/coverage/clover.xml +0 -241
- package/coverage/coverage-final.json +0 -11
- package/coverage/lcov-report/base.css +0 -224
- package/coverage/lcov-report/block-navigation.js +0 -87
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +0 -161
- package/coverage/lcov-report/prettify.css +0 -1
- package/coverage/lcov-report/prettify.js +0 -2
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +0 -210
- package/coverage/lcov-report/src/Batch/ZendeskCreateWebhookConnector.ts.html +0 -373
- package/coverage/lcov-report/src/Batch/ZendeskDeleteWebhookConnector.ts.html +0 -202
- package/coverage/lcov-report/src/Batch/ZendeskListTicketsBatch.ts.html +0 -337
- package/coverage/lcov-report/src/Batch/ZendeskListUsersBatch.ts.html +0 -247
- package/coverage/lcov-report/src/Batch/index.html +0 -161
- package/coverage/lcov-report/src/Connector/ZendeskCreateTicketConnector.ts.html +0 -319
- package/coverage/lcov-report/src/Connector/ZendeskCreateTriggerConnector.ts.html +0 -226
- package/coverage/lcov-report/src/Connector/ZendeskCreateUserConnector.ts.html +0 -265
- package/coverage/lcov-report/src/Connector/ZendeskDeleteTriggerConnector.ts.html +0 -223
- package/coverage/lcov-report/src/Connector/index.html +0 -161
- package/coverage/lcov-report/src/ZendeskApplication.ts.html +0 -448
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/test/dataProvider.ts.html +0 -307
- package/coverage/lcov-report/test/index.html +0 -116
- package/coverage/lcov.info +0 -389
- package/jest.config.js +0 -13
- package/src/Batch/ZendeskCreateWebhookConnector.ts +0 -96
- package/src/Batch/ZendeskDeleteWebhookConnector.ts +0 -39
- package/src/Batch/ZendeskListTicketsBatch.ts +0 -84
- package/src/Batch/ZendeskListUsersBatch.ts +0 -54
- package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/1-mock.json +0 -57
- package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/input.json +0 -6
- package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/mock.json +0 -106
- package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output.json +0 -18
- package/src/Batch/__tests__/Data/ZendeskListTicketsBatch/output1.json +0 -12
- package/src/Batch/__tests__/Data/ZendeskListUsersBatch/input.json +0 -6
- package/src/Batch/__tests__/Data/ZendeskListUsersBatch/mock.json +0 -161
- package/src/Batch/__tests__/Data/ZendeskListUsersBatch/output.json +0 -19
- package/src/Batch/__tests__/ZendeskListTicketsBatch.ts +0 -17
- package/src/Batch/__tests__/ZendeskListUsersBatch.ts +0 -17
- package/src/Connector/ZendeskCreateTicketConnector.ts +0 -78
- package/src/Connector/ZendeskCreateTriggerConnector.ts +0 -47
- package/src/Connector/ZendeskCreateUserConnector.ts +0 -60
- package/src/Connector/ZendeskDeleteTriggerConnector.ts +0 -46
- package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/input.json +0 -14
- package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/mock.json +0 -194
- package/src/Connector/__tests__/Data/ZendeskCreateTicketConnector/output.json +0 -194
- package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/input.json +0 -11
- package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/mock.json +0 -31
- package/src/Connector/__tests__/Data/ZendeskCreateTriggerConnector/output.json +0 -29
- package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/input.json +0 -25
- package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/mock.json +0 -45
- package/src/Connector/__tests__/Data/ZendeskCreateUserConnector/output.json +0 -44
- package/src/Connector/__tests__/ZendeskCreateTicketConnector.ts +0 -17
- package/src/Connector/__tests__/ZendeskCreateTriggerConnector.ts +0 -17
- package/src/Connector/__tests__/ZendeskCreateUserConnector.ts +0 -17
- package/src/ZendeskApplication.ts +0 -121
- package/src/types/trigger.types.ts +0 -19
- package/src/types/webhook.types.ts +0 -20
- package/test/dataProvider.ts +0 -74
- package/tsconfig.json +0 -8
- package/tsconfig.prod.json +0 -13
- 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
|
-
}
|
package/test/dataProvider.ts
DELETED
|
@@ -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