@orchesty/connector-zoho 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.
- package/README.md +85 -0
- package/dist/package.json +5 -2
- package/package.json +5 -2
- package/CHANGELOG.md +0 -7
- package/coverage/clover.xml +0 -124
- package/coverage/coverage-final.json +0 -5
- 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 -146
- 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/Connector/ZohoAddRecordsConnector.ts.html +0 -310
- package/coverage/lcov-report/src/Connector/ZohoGetRecordsConnector.ts.html +0 -436
- package/coverage/lcov-report/src/Connector/index.html +0 -131
- package/coverage/lcov-report/src/ZohoApplication.ts.html +0 -430
- package/coverage/lcov-report/src/index.html +0 -116
- package/coverage/lcov-report/test/dataProvider.ts.html +0 -271
- package/coverage/lcov-report/test/index.html +0 -116
- package/coverage/lcov.info +0 -182
- package/jest.config.js +0 -13
- package/src/Connector/ZohoAddRecordsConnector.ts +0 -75
- package/src/Connector/ZohoGetRecordsConnector.ts +0 -117
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/error-input.json +0 -25
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/error-mock.json +0 -39
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/error-output.json +0 -37
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/input.json +0 -25
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/mock.json +0 -12
- package/src/Connector/__tests__/Data/ZohoAddRecordsConnector/output.json +0 -8
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/error-input.json +0 -8
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/error-mock.json +0 -79
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/error-output.json +0 -76
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/input.json +0 -8
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/mock.json +0 -11
- package/src/Connector/__tests__/Data/ZohoGetRecordsConnector/output.json +0 -11
- package/src/Connector/__tests__/ZohoAddRecordsConnector.ts +0 -21
- package/src/Connector/__tests__/ZohoGetRecordsConnector.ts +0 -21
- package/src/ZohoApplication.ts +0 -115
- package/test/dataProvider.ts +0 -62
- package/tsconfig.json +0 -8
- package/tsconfig.prod.json +0 -13
- package/tsconfig.prod.tsbuildinfo +0 -1
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
|
|
2
|
-
import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
|
|
3
|
-
import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
|
|
4
|
-
import {
|
|
5
|
-
ACCOUNT_OWNER_NAME, APP_LINK_NAME, CREATOR_FORM, REPORT_LINK_NAME,
|
|
6
|
-
} from '../ZohoApplication';
|
|
7
|
-
|
|
8
|
-
export const NAME = 'zoho-get-records-connector';
|
|
9
|
-
|
|
10
|
-
export default class ZohoGetRecordsConnector extends AConnector {
|
|
11
|
-
|
|
12
|
-
public getName(): string {
|
|
13
|
-
return NAME;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
public async processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOutput>> {
|
|
17
|
-
const { recordId } = dto.getJsonData();
|
|
18
|
-
|
|
19
|
-
if (!recordId) {
|
|
20
|
-
throw new Error('Record ID is missing');
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const appInstall = await this.getApplicationInstallFromProcess(dto);
|
|
24
|
-
const accountOwnerName = appInstall.getSettings()[CREATOR_FORM][ACCOUNT_OWNER_NAME];
|
|
25
|
-
const appLink = appInstall.getSettings()[CREATOR_FORM][APP_LINK_NAME];
|
|
26
|
-
const reportLink = appInstall.getSettings()[CREATOR_FORM][REPORT_LINK_NAME];
|
|
27
|
-
const url = `/${accountOwnerName}/${appLink}/report/${reportLink}/${recordId}`;
|
|
28
|
-
|
|
29
|
-
const req = await this.getApplication().getRequestDto(dto, appInstall, HttpMethods.GET, url);
|
|
30
|
-
const resp = await this.getSender().send<IResponse>(req, [200]);
|
|
31
|
-
|
|
32
|
-
const records = resp.getJsonBody();
|
|
33
|
-
|
|
34
|
-
if (records.code !== 3000) {
|
|
35
|
-
throw new Error('The request failed');
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return dto.setNewJsonData(records.data);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
44
|
-
interface IResponse {
|
|
45
|
-
code: number;
|
|
46
|
-
data: IOutput;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export interface IInput {
|
|
50
|
-
recordId: string;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
export interface IOutput {
|
|
54
|
-
Multi_Line: string;
|
|
55
|
-
Email: string;
|
|
56
|
-
Address: {
|
|
57
|
-
display_value: string;
|
|
58
|
-
country: string;
|
|
59
|
-
district_city: string;
|
|
60
|
-
latitude: string;
|
|
61
|
-
address_line_1: string;
|
|
62
|
-
state_province: string;
|
|
63
|
-
address_line_2: string;
|
|
64
|
-
postal_code: string;
|
|
65
|
-
longitude: string;
|
|
66
|
-
};
|
|
67
|
-
Phone_Number: string;
|
|
68
|
-
Time: string;
|
|
69
|
-
Image: string;
|
|
70
|
-
Url: {
|
|
71
|
-
value: string;
|
|
72
|
-
url: string;
|
|
73
|
-
};
|
|
74
|
-
Name: {
|
|
75
|
-
display_value: string;
|
|
76
|
-
prefix: string;
|
|
77
|
-
last_name: string;
|
|
78
|
-
suffix: string;
|
|
79
|
-
first_name: string;
|
|
80
|
-
};
|
|
81
|
-
Formula: string;
|
|
82
|
-
Single_Line: string;
|
|
83
|
-
Number: string;
|
|
84
|
-
Decimal: string;
|
|
85
|
-
Decision_box: string;
|
|
86
|
-
File_upload: string;
|
|
87
|
-
Checkbox: string;
|
|
88
|
-
Currency: string;
|
|
89
|
-
Rich_Text: string;
|
|
90
|
-
Lookup: {
|
|
91
|
-
display_value: string;
|
|
92
|
-
ID: string;
|
|
93
|
-
};
|
|
94
|
-
ID: string;
|
|
95
|
-
Integration: {
|
|
96
|
-
display_value: string;
|
|
97
|
-
ID: string;
|
|
98
|
-
};
|
|
99
|
-
Multi_Select: string[];
|
|
100
|
-
Keyword: string;
|
|
101
|
-
Percent: string;
|
|
102
|
-
Prediction: string;
|
|
103
|
-
Dropdown: string;
|
|
104
|
-
Inline_SubForm: { display_value: string; ID: string };
|
|
105
|
-
Radio: string;
|
|
106
|
-
Auto_Number: string;
|
|
107
|
-
users: string;
|
|
108
|
-
Audio: string;
|
|
109
|
-
Video: string;
|
|
110
|
-
Signature: string;
|
|
111
|
-
Sentiment: string;
|
|
112
|
-
Date_Time: string;
|
|
113
|
-
Date_field: string;
|
|
114
|
-
Object_Detection: string;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/* eslint-enable @typescript-eslint/naming-convention */
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"headers": {
|
|
3
|
-
"user": "TestUser"
|
|
4
|
-
},
|
|
5
|
-
"data": {
|
|
6
|
-
"data": [
|
|
7
|
-
{
|
|
8
|
-
"Email": "jason@zylker.com",
|
|
9
|
-
"Phone_Number": "+16103948336"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"Email": "p.boyle@zylker.com",
|
|
13
|
-
"Phone_Number": "+12096173907"
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
|
-
"result": {
|
|
17
|
-
"fields": [
|
|
18
|
-
"Phone_Number",
|
|
19
|
-
"Email"
|
|
20
|
-
],
|
|
21
|
-
"message": true,
|
|
22
|
-
"tasks": true
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"http": "POST https://creator.zoho.eu/api/v2/Hanabosotest/HanabosoApp/report/report_link/123",
|
|
3
|
-
"code": 200,
|
|
4
|
-
"body": {
|
|
5
|
-
"result": [
|
|
6
|
-
{
|
|
7
|
-
"code": 3000,
|
|
8
|
-
"data": {
|
|
9
|
-
"Email": "jason@zylker.com",
|
|
10
|
-
"Phone_Number": "+16103948336",
|
|
11
|
-
"ID": "3888833000000121319"
|
|
12
|
-
},
|
|
13
|
-
"message": "Data Added Successfully!",
|
|
14
|
-
"tasks": {
|
|
15
|
-
"openurl": {
|
|
16
|
-
"type": "Same window",
|
|
17
|
-
"url": "#Report:All_Orders"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"code": 2999,
|
|
23
|
-
"data": {
|
|
24
|
-
"Email": "p.boyle@zylker.com",
|
|
25
|
-
"Phone_Number": "+12096173907",
|
|
26
|
-
"ID": "3888833000000121339"
|
|
27
|
-
},
|
|
28
|
-
"message": "err!",
|
|
29
|
-
"tasks": {
|
|
30
|
-
"openurl": {
|
|
31
|
-
"type": "Same window",
|
|
32
|
-
"url": "#Report:All_Orders"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
],
|
|
37
|
-
"code": 2999
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"headers": {
|
|
3
|
-
"user": "TestUser"
|
|
4
|
-
},
|
|
5
|
-
"data": [
|
|
6
|
-
{
|
|
7
|
-
"code": 3000,
|
|
8
|
-
"data": {
|
|
9
|
-
"Email": "jason@zylker.com",
|
|
10
|
-
"Phone_Number": "+16103948336",
|
|
11
|
-
"ID": "3888833000000121319"
|
|
12
|
-
},
|
|
13
|
-
"message": "Data Added Successfully!",
|
|
14
|
-
"tasks": {
|
|
15
|
-
"openurl": {
|
|
16
|
-
"type": "Same window",
|
|
17
|
-
"url": "#Report:All_Orders"
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"code": 2999,
|
|
23
|
-
"data": {
|
|
24
|
-
"Email": "p.boyle@zylker.com",
|
|
25
|
-
"Phone_Number": "+12096173907",
|
|
26
|
-
"ID": "3888833000000121339"
|
|
27
|
-
},
|
|
28
|
-
"message": "err!",
|
|
29
|
-
"tasks": {
|
|
30
|
-
"openurl": {
|
|
31
|
-
"type": "Same window",
|
|
32
|
-
"url": "#Report:All_Orders"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
]
|
|
37
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"headers": {
|
|
3
|
-
"user": "TestUser"
|
|
4
|
-
},
|
|
5
|
-
"data": {
|
|
6
|
-
"data": [
|
|
7
|
-
{
|
|
8
|
-
"Email": "jason@zylker.com",
|
|
9
|
-
"Phone_Number": "+16103948336"
|
|
10
|
-
},
|
|
11
|
-
{
|
|
12
|
-
"Email": "p.boyle@zylker.com",
|
|
13
|
-
"Phone_Number": "+12096173907"
|
|
14
|
-
}
|
|
15
|
-
],
|
|
16
|
-
"result": {
|
|
17
|
-
"fields": [
|
|
18
|
-
"Phone_Number",
|
|
19
|
-
"Email"
|
|
20
|
-
],
|
|
21
|
-
"message": false,
|
|
22
|
-
"tasks": true
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"http": "GET https://creator.zoho.com/api/v2/name/name_app/report/report_link/123",
|
|
3
|
-
"code": 200,
|
|
4
|
-
"body": {
|
|
5
|
-
"code": 2900,
|
|
6
|
-
"data": {
|
|
7
|
-
"Multi_Line": "Multiples\nLines\nof Text",
|
|
8
|
-
"Email": "jason@zylker.com",
|
|
9
|
-
"Address": {
|
|
10
|
-
"display_value": "4154 High Meadow Lane, Scranton, PA, 18503, United States",
|
|
11
|
-
"country": "United States",
|
|
12
|
-
"district_city": "Scranton",
|
|
13
|
-
"latitude": "41.4086874",
|
|
14
|
-
"address_line_1": "4154 High Meadow Lane",
|
|
15
|
-
"state_province": "PA",
|
|
16
|
-
"address_line_2": "",
|
|
17
|
-
"postal_code": "18503",
|
|
18
|
-
"longitude": "-75.6621294"
|
|
19
|
-
},
|
|
20
|
-
"Phone_Number": "+15704961113",
|
|
21
|
-
"Time": "10:30:00",
|
|
22
|
-
"Image": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Image/download?filepath=1605793663620_jasonprofile.jpg",
|
|
23
|
-
"Url": {
|
|
24
|
-
"value": "Zylker Inc",
|
|
25
|
-
"url": "https://www.zylker.com"
|
|
26
|
-
},
|
|
27
|
-
"Name": {
|
|
28
|
-
"display_value": "Mr. Jason Bowley Jr",
|
|
29
|
-
"prefix": "Mr.",
|
|
30
|
-
"last_name": "Bowley",
|
|
31
|
-
"suffix": "Jr",
|
|
32
|
-
"first_name": "Jason"
|
|
33
|
-
},
|
|
34
|
-
"Formula": "Single Line of Text - jason@zylker.com",
|
|
35
|
-
"Single_Line": "Single Line of Text",
|
|
36
|
-
"Number": "20",
|
|
37
|
-
"Decimal": "20.43",
|
|
38
|
-
"Decision_box": "true",
|
|
39
|
-
"File_upload": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/File_upload/download?filepath=1605793668376_myfile.txt",
|
|
40
|
-
"Checkbox": "Choice 1,Choice 2",
|
|
41
|
-
"Currency": "1230.89",
|
|
42
|
-
"Rich_Text": "<div><b>Rich</b> <i><span class=\"highlight\" style=\"background-color: rgb(254, 255, 51)\">Text</span></i> <u><span class=\"colour\" style=\"color: rgb(51, 51, 255)\">data</span></u>.<br /></div>",
|
|
43
|
-
"Lookup": {
|
|
44
|
-
"display_value": "asdasd",
|
|
45
|
-
"ID": "3888833000000114027"
|
|
46
|
-
},
|
|
47
|
-
"ID": "3888833000000114023",
|
|
48
|
-
"Integration": {
|
|
49
|
-
"display_value": "Webster",
|
|
50
|
-
"ID": "3888833000000114007"
|
|
51
|
-
},
|
|
52
|
-
"Multi_Select": [
|
|
53
|
-
"Choice 2",
|
|
54
|
-
"Choice 3"
|
|
55
|
-
],
|
|
56
|
-
"Keyword": "Multiples Lines,Text",
|
|
57
|
-
"Percent": "34.34",
|
|
58
|
-
"Prediction": "",
|
|
59
|
-
"Dropdown": "Choice 2",
|
|
60
|
-
"Inline_SubForm": [
|
|
61
|
-
{
|
|
62
|
-
"display_value": "Barry",
|
|
63
|
-
"ID": "3888833000000114013"
|
|
64
|
-
}
|
|
65
|
-
],
|
|
66
|
-
"Radio": "Choice 1",
|
|
67
|
-
"Auto_Number": "1",
|
|
68
|
-
"users": "jason18",
|
|
69
|
-
"Audio": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Audio/download?filepath=1605793663623_audiofile.mp3",
|
|
70
|
-
"Video": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Video/download?filepath=1605793663626_videofile.mp4",
|
|
71
|
-
"Signature": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Signature/download?filepath=1605793663691_signature.png",
|
|
72
|
-
"Sentiment": "Positive",
|
|
73
|
-
"Date_Time": "24-Apr-2020 10:30:00",
|
|
74
|
-
"Date_field": "24-Apr-2020",
|
|
75
|
-
"Object_Detection": "tv,laptop"
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"headers": {
|
|
3
|
-
"user": "TestUser"
|
|
4
|
-
},
|
|
5
|
-
"data": {
|
|
6
|
-
"Multi_Line": "Multiples\nLines\nof Text",
|
|
7
|
-
"Email": "jason@zylker.com",
|
|
8
|
-
"Address": {
|
|
9
|
-
"display_value": "4154 High Meadow Lane, Scranton, PA, 18503, United States",
|
|
10
|
-
"country": "United States",
|
|
11
|
-
"district_city": "Scranton",
|
|
12
|
-
"latitude": "41.4086874",
|
|
13
|
-
"address_line_1": "4154 High Meadow Lane",
|
|
14
|
-
"state_province": "PA",
|
|
15
|
-
"address_line_2": "",
|
|
16
|
-
"postal_code": "18503",
|
|
17
|
-
"longitude": "-75.6621294"
|
|
18
|
-
},
|
|
19
|
-
"Phone_Number": "+15704961113",
|
|
20
|
-
"Time": "10:30:00",
|
|
21
|
-
"Image": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Image/download?filepath=1605793663620_jasonprofile.jpg",
|
|
22
|
-
"Url": {
|
|
23
|
-
"value": "Zylker Inc",
|
|
24
|
-
"url": "https://www.zylker.com"
|
|
25
|
-
},
|
|
26
|
-
"Name": {
|
|
27
|
-
"display_value": "Mr. Jason Bowley Jr",
|
|
28
|
-
"prefix": "Mr.",
|
|
29
|
-
"last_name": "Bowley",
|
|
30
|
-
"suffix": "Jr",
|
|
31
|
-
"first_name": "Jason"
|
|
32
|
-
},
|
|
33
|
-
"Formula": "Single Line of Text - jason@zylker.com",
|
|
34
|
-
"Single_Line": "Single Line of Text",
|
|
35
|
-
"Number": "20",
|
|
36
|
-
"Decimal": "20.43",
|
|
37
|
-
"Decision_box": "true",
|
|
38
|
-
"File_upload": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/File_upload/download?filepath=1605793668376_myfile.txt",
|
|
39
|
-
"Checkbox": "Choice 1,Choice 2",
|
|
40
|
-
"Currency": "1230.89",
|
|
41
|
-
"Rich_Text": "<div><b>Rich</b> <i><span class=\"highlight\" style=\"background-color: rgb(254, 255, 51)\">Text</span></i> <u><span class=\"colour\" style=\"color: rgb(51, 51, 255)\">data</span></u>.<br /></div>",
|
|
42
|
-
"Lookup": {
|
|
43
|
-
"display_value": "asdasd",
|
|
44
|
-
"ID": "3888833000000114027"
|
|
45
|
-
},
|
|
46
|
-
"ID": "3888833000000114023",
|
|
47
|
-
"Integration": {
|
|
48
|
-
"display_value": "Webster",
|
|
49
|
-
"ID": "3888833000000114007"
|
|
50
|
-
},
|
|
51
|
-
"Multi_Select": [
|
|
52
|
-
"Choice 2",
|
|
53
|
-
"Choice 3"
|
|
54
|
-
],
|
|
55
|
-
"Keyword": "Multiples Lines,Text",
|
|
56
|
-
"Percent": "34.34",
|
|
57
|
-
"Prediction": "",
|
|
58
|
-
"Dropdown": "Choice 2",
|
|
59
|
-
"Inline_SubForm": [
|
|
60
|
-
{
|
|
61
|
-
"display_value": "Barry",
|
|
62
|
-
"ID": "3888833000000114013"
|
|
63
|
-
}
|
|
64
|
-
],
|
|
65
|
-
"Radio": "Choice 1",
|
|
66
|
-
"Auto_Number": "1",
|
|
67
|
-
"users": "jason18",
|
|
68
|
-
"Audio": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Audio/download?filepath=1605793663623_audiofile.mp3",
|
|
69
|
-
"Video": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Video/download?filepath=1605793663626_videofile.mp4",
|
|
70
|
-
"Signature": "/api/v2/jason18/zylker-store/report/All_Orders/3888833000000114023/Signature/download?filepath=1605793663691_signature.png",
|
|
71
|
-
"Sentiment": "Positive",
|
|
72
|
-
"Date_Time": "24-Apr-2020 10:30:00",
|
|
73
|
-
"Date_field": "24-Apr-2020",
|
|
74
|
-
"Object_Detection": "tv,laptop"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
@@ -1,21 +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 ZOHO_ADD_RECORDS_CONNECTOR } from '../ZohoAddRecordsConnector';
|
|
5
|
-
|
|
6
|
-
let tester: NodeTester;
|
|
7
|
-
|
|
8
|
-
describe('Tests for ZohoAddRecordsConnector', () => {
|
|
9
|
-
beforeAll(() => {
|
|
10
|
-
tester = new NodeTester(container, __filename);
|
|
11
|
-
init();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('process - ok', async () => {
|
|
15
|
-
await tester.testConnector(ZOHO_ADD_RECORDS_CONNECTOR);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it('process - error', async () => {
|
|
19
|
-
await tester.testConnector(ZOHO_ADD_RECORDS_CONNECTOR, 'error', Error);
|
|
20
|
-
});
|
|
21
|
-
});
|
|
@@ -1,21 +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 ZOHO_GET_RECORDS_CONNECTOR } from '../ZohoGetRecordsConnector';
|
|
5
|
-
|
|
6
|
-
let tester: NodeTester;
|
|
7
|
-
|
|
8
|
-
describe('Tests for ZohoGetRecordsConnector', () => {
|
|
9
|
-
beforeAll(() => {
|
|
10
|
-
tester = new NodeTester(container, __filename);
|
|
11
|
-
init();
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
it('process - ok', async () => {
|
|
15
|
-
await tester.testConnector(ZOHO_GET_RECORDS_CONNECTOR);
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it('process - error', async () => {
|
|
19
|
-
await tester.testConnector(ZOHO_GET_RECORDS_CONNECTOR, 'error', Error);
|
|
20
|
-
});
|
|
21
|
-
});
|
package/src/ZohoApplication.ts
DELETED
|
@@ -1,115 +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 ScopeSeparatorEnum from '@orchesty/nodejs-sdk/dist/lib/Authorization/ScopeSeparatorEnum';
|
|
8
|
-
import { TOKEN } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/Basic/ABasicApplication';
|
|
9
|
-
import AOAuth2Application from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/AOAuth2Application';
|
|
10
|
-
import { CLIENT_ID, CLIENT_SECRET } from '@orchesty/nodejs-sdk/dist/lib/Authorization/Type/OAuth2/IOAuth2Application';
|
|
11
|
-
import RequestDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/RequestDto';
|
|
12
|
-
import { HttpMethods } from '@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods';
|
|
13
|
-
import AProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/AProcessDto';
|
|
14
|
-
import { CommonHeaders, JSON_TYPE } from '@orchesty/nodejs-sdk/dist/lib/Utils/Headers';
|
|
15
|
-
|
|
16
|
-
const API_PATH = '/api/v2';
|
|
17
|
-
|
|
18
|
-
export const NAME = 'zoho';
|
|
19
|
-
export const API_DOMAIN = 'api_domain';
|
|
20
|
-
export const CREATOR_FORM = 'creator_form';
|
|
21
|
-
export const ACCOUNT_OWNER_NAME = 'account_owner_name';
|
|
22
|
-
export const APP_LINK_NAME = 'app_link_name';
|
|
23
|
-
export const FORM_LINK_NAME = 'form_link_name';
|
|
24
|
-
export const REPORT_LINK_NAME = 'report_link_name';
|
|
25
|
-
|
|
26
|
-
export default class ZohoApplication extends AOAuth2Application {
|
|
27
|
-
|
|
28
|
-
public getAuthUrl(): string {
|
|
29
|
-
return 'https://accounts.zoho.eu/oauth/v2/auth';
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
public getDescription(): string {
|
|
33
|
-
return 'Zoho is a provider of a Customer Relationship Management (CRM) solution';
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public getName(): string {
|
|
37
|
-
return NAME;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
public getPublicName(): string {
|
|
41
|
-
return 'Zoho';
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
public getLogo(): string {
|
|
45
|
-
return 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI1LjAuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IlZyc3R2YV8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMTAwIDEwMCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTAwIDEwMDsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLnN0MHtmaWxsOiNFNzkyMjQ7fQoJLnN0MXtmaWxsOnVybCgjU1ZHSURfMV8pO30KCS5zdDJ7ZmlsbDojRkVGMjZGO30KCS5zdDN7ZmlsbDojOTFDOUVEO30KCS5zdDR7ZmlsbDp1cmwoI1NWR0lEXzJfKTt9Cgkuc3Q1e2ZpbGw6IzBCOUFENjt9Cgkuc3Q2e2NsaXAtcGF0aDp1cmwoI1NWR0lEXzRfKTt9Cgkuc3Q3e2ZpbGw6dXJsKCNTVkdJRF81Xyk7fQoJLnN0OHtmaWxsOiM5OEQwQTA7fQoJLnN0OXtmaWxsOiM2OEJGNkI7fQoJLnN0MTB7ZmlsbDp1cmwoI1NWR0lEXzZfKTt9Cgkuc3QxMXtmaWxsOiNFRjQ2M0Q7fQoJLnN0MTJ7ZmlsbDojNzYxMTE2O30KCS5zdDEze2ZpbGw6I0ZGRkZGRjt9Cjwvc3R5bGU+CjxnIHRyYW5zZm9ybT0ibWF0cml4KDEuMzMzMyAwIDAgLTEuMzMzMyAwIDEwMC4wOCkiPgoJPGcgdHJhbnNmb3JtPSJtYXRyaXgoLjI5Mzc4IDAgMCAuMjkzNzggMCAuMDQyMzczKSI+CgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNzQwLjM4IDIwMC44NCkiPgoJCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNLTQ4NS4yLTQ3LjF2LTYyLjZsLTguNC04LjR2NjEuMkwtNDg1LjItNDcuMSIvPgoJCTwvZz4KCQkKCQkJPGxpbmVhckdyYWRpZW50IGlkPSJTVkdJRF8xXyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSItNjE1LjQ1MjkiIHkxPSItOTUwLjEzOTUiIHgyPSItNjE1LjA5NjUiIHkyPSItOTUwLjEzOTUiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLTIuNzQxODc4ZS0wNiAtNjQuMzU1OCAtNjQuMzU1OCAyLjc0MTg3OGUtMDYgLTYwOTI3LjY5MTQgLTM5NDY0LjgzOTgpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6I0ZGRTUwMCIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojRkNCODIyIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3QxIiBkPSJNMjQ2LjksMTQ0aC01NS4zVjgyLjdoNTUuM1YxNDR6Ii8+CgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTgxLjEgMjAwLjcyKSI+CgkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0tMzgwLjgtNDdsLTguNy05LjhoNTUuM2w4LjIsOS44TC0zODAuOC00NyIvPgoJCTwvZz4KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgzODIuMjMgMTkzLjE5KSI+CgkJCTxwYXRoIGNsYXNzPSJzdDMiIGQ9Ik0tMjUwLjQtNDIuMWw1NC40LDcuOGwtNC42LTEzLjVsLTUxLjUtOC41bDAuMiw5LjZMLTI1MC40LTQyLjEiLz4KCQk8L2c+CgkJCgkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfMl8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTYxOS40Njc3IiB5MT0iLTk0MC40Nzg4IiB4Mj0iLTYxOS4xMTg4IiB5Mj0iLTk0MC40Nzg4IiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDYzLjA5NDUgLTUwLjY2OTkgLTUwLjY2OTkgLTYzLjA5NDUgLTg0MzguMjQ1MSAtOTA1OTEpIj4KCQkJPHN0b3AgIG9mZnNldD0iMCIgc3R5bGU9InN0b3AtY29sb3I6IzE2OENDQyIvPgoJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDA2NDlFIi8+CgkJPC9saW5lYXJHcmFkaWVudD4KCQk8cGF0aCBjbGFzcz0ic3Q0IiBkPSJNMTgxLjcsMTQ1LjRsNy41LTU0LjlsLTUzLjYtNy44bC03LjIsNTMuMWwzLjEsMi41TDE4MS43LDE0NS40Ii8+CgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNTQwLjE4IDIxNS4xNSkiPgoJCQk8cGF0aCBjbGFzcz0ic3Q1IiBkPSJNLTM1NC01Ni4zbDAtMC4zbDcuMS01Ni4ybC00LjEtMTEuOGwtNy41LDU0LjkiLz4KCQk8L2c+CgkJPGc+CgkJCTxkZWZzPgoJCQkJPHBvbHlsaW5lIGlkPSJTVkdJRF8zXyIgcG9pbnRzPSI4NS44LDE1NS43IDEzNCwxMzMuMyAxMTIuMyw4Mi4yIDY0LjEsMTA0LjcgODUuOCwxNTUuNyAJCQkJIi8+CgkJCTwvZGVmcz4KCQkJPGNsaXBQYXRoIGlkPSJTVkdJRF80XyI+CgkJCQk8dXNlIHhsaW5rOmhyZWY9IiNTVkdJRF8zXyIgIHN0eWxlPSJvdmVyZmxvdzp2aXNpYmxlOyIvPgoJCQk8L2NsaXBQYXRoPgoJCQk8ZyBjbGFzcz0ic3Q2Ij4KCQkJCQoJCQkJCTxsaW5lYXJHcmFkaWVudCBpZD0iU1ZHSURfNV8iIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iLTYxMy41NiIgeTE9Ii05NTUuMTc0NiIgeDI9Ii02MTMuMjAzNiIgeTI9Ii05NTUuMTc0NiIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMi4zNTAxODFlLTA2IC01Ni4zODA4IC01Ni4zODA4IDIuMzUwMTgxZS0wNiAtNTM3MjUuOTAyMyAtMzQ0NTcuNzE4OCkiPgoJCQkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiMyNUExNDkiLz4KCQkJCQk8c3RvcCAgb2Zmc2V0PSIxIiBzdHlsZT0ic3RvcC1jb2xvcjojMDA4QTUyIi8+CgkJCQk8L2xpbmVhckdyYWRpZW50PgoJCQkJPHBhdGggY2xhc3M9InN0NyIgZD0iTTAuMSwxNzMuMmgyNTV2LTkxSDAuMVYxNzMuMnoiLz4KCQkJPC9nPgoJCTwvZz4KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyMzQuMzEgMjU1LjM2KSI+CgkJCTxwYXRoIGNsYXNzPSJzdDgiIGQ9Ik0tMTUzLjUtODIuMWw1LTE3LjVsNDguMi0yMi41bC00LDE2LjdMLTE1My41LTgyLjEiLz4KCQk8L2c+CgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjM0LjMxIDI1NS4zNikiPgoJCQk8cGF0aCBjbGFzcz0ic3Q5IiBkPSJNLTE1My41LTgyLjFsLTE5LjQtNDcuNmwyLjctMjAuOWwyMS43LDUxTC0xNTMuNS04Mi4xIi8+CgkJPC9nPgoJCQoJCQk8bGluZWFyR3JhZGllbnQgaWQ9IlNWR0lEXzZfIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9Ii02MTIuODc2NyIgeTE9Ii05NTMuNzc4OCIgeDI9Ii02MTIuNTIyNiIgeTI9Ii05NTMuNzc4OCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCg5LjY5NjEgLTU4LjUzNTIgLTU4LjUzNTIgLTkuNjk2MSAtNDk4NjAuMTA5NCAtNDQ5ODIuNTgyKSI+CgkJCTxzdG9wICBvZmZzZXQ9IjAiIHN0eWxlPSJzdG9wLWNvbG9yOiNEOTIyMzEiLz4KCQkJPHN0b3AgIG9mZnNldD0iMSIgc3R5bGU9InN0b3AtY29sb3I6I0JBMjIzNCIvPgoJCTwvbGluZWFyR3JhZGllbnQ+CgkJPHBhdGggY2xhc3M9InN0MTAiIGQ9Ik01NCwxNDUuNWw3LjktNTRMOC43LDgyLjhsLTguNSw1NC4xTDU0LDE0NS41Ii8+CgkJPGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAxNTMuNTcpIj4KCQkJPHBhdGggY2xhc3M9InN0MTEiIGQ9Ik0wLjEtMTYuNkwzLjksMi43bDUzLjcsOC45TDU0LTguMUwwLjEtMTYuNiIvPgoJCTwvZz4KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNjYuODggMjMyLjcpIj4KCQkJPHBhdGggY2xhc3M9InN0MTIiIGQ9Ik0tMTA5LjMtNjcuNmw3LjktNTQuNWwtMy42LTE5LjFsLTcuOSw1NEwtMTA5LjMtNjcuNiIvPgoJCTwvZz4KCQk8ZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSg1MDAuNDcgMTQ3Ljc2KSI+CgkJCTxwYXRoIGNsYXNzPSJzdDEzIiBkPSJNLTMyNy45LTEyLjljLTAuMiwxLjctMC44LDMtMS43LDMuOWMtMC43LDAuNy0xLjYsMS0yLjcsMWMtMC4zLDAtMC41LDAtMC44LTAuMWMtMS40LTAuMi0yLjUtMC45LTMuMS0yCgkJCQljLTAuNS0wLjgtMC43LTEuOC0wLjctMi45YzAtMC40LDAtMC45LDAuMS0xLjNsMi0xNC4zbC0xNS40LTIuM2wtMiwxNC4zYy0wLjIsMS43LTAuOCwyLjktMS43LDMuOGMtMC43LDAuNy0xLjYsMS4xLTIuNywxLjEKCQkJCWMtMC4yLDAtMC41LDAtMC43LTAuMWMtMS41LTAuMi0yLjYtMC45LTMuMi0yYy0wLjUtMC44LTAuNy0xLjctMC43LTIuOWMwLTAuNCwwLTAuOSwwLjEtMS40bDUuMy0zNy4xYzAuMi0xLjcsMC44LTMsMS44LTMuOAoJCQkJYzAuNy0wLjcsMS43LTEsMi43LTFjMC4zLDAsMC42LDAsMC45LDAuMWMxLjMsMC4yLDIuNCwwLjksMywyYzAuNCwwLjgsMC43LDEuNywwLjcsMi44YzAsMC40LDAsMC45LTAuMSwxLjRsLTIuMiwxNC43bDE1LjQsMi4zCgkJCQlsMi4yLTE0LjdjMC4yLTEuNywwLjgtMywxLjctMy44YzAuNy0wLjcsMS43LTEsMi43LTFjMC4zLDAsMC41LDAsMC44LDAuMWMxLjQsMC4yLDIuNSwwLjksMy4xLDJjMC41LDAuOCwwLjcsMS43LDAuNywyLjgKCQkJCWMwLDAuNCwwLDAuOS0wLjEsMS40TC0zMjcuOS0xMi45eiBNLTM5MC43LTMzLjRjLTEuOC00LjQtNC4yLTcuNS03LjItOS4xYy0xLjYtMC45LTMuMi0xLjMtNC45LTEuM2MtMS41LDAtMywwLjMtNC41LDEKCQkJCWMtMy40LDEuNS01LjUsMy45LTYuNCw3LjJjLTAuMywxLjEtMC41LDIuMy0wLjUsMy42YzAsMi41LDAuNiw1LjIsMS44LDguMWMxLjksNC41LDQuMyw3LjYsNy4yLDkuM2MxLjYsMC45LDMuMiwxLjQsNC45LDEuNAoJCQkJYzEuNSwwLDMtMC4zLDQuNi0xYzMuMy0xLjUsNS40LTMuOSw2LjMtNy4zYzAuMy0xLjEsMC40LTIuMywwLjQtMy41Qy0zODguOC0yNy42LTM4OS40LTMwLjQtMzkwLjctMzMuNHogTS0zODUuNC0xMS4yCgkJCQljLTEuOSwyLjEtNC4yLDMuNy02LjksNC45Yy0yLjcsMS4yLTUuNCwxLjgtOC4xLDEuOGwtMC4xLDBjLTIuOCwwLTUuNS0wLjctOC4yLTEuOXYwYy0yLjgtMS4zLTUuMy0zLTcuNC01LjMKCQkJCWMtMi4xLTIuMy0zLjgtNS01LjEtOC4yYy0xLjMtMy4yLTItNi4zLTIuMS05LjVjMC0wLjQsMC0wLjcsMC0xLjFjMC0yLjgsMC41LTUuNSwxLjQtOC4yYzEtMi44LDIuNC01LjMsNC4zLTcuMwoJCQkJYzEuOS0yLjEsNC4zLTMuNyw3LTQuOXYwYzIuNy0xLjIsNS4zLTEuOCw4LjEtMS43aDAuMWMyLjgsMCw1LjUsMC42LDguMiwxLjhsMCwwbDAsMGMyLjgsMS4zLDUuMywzLjEsNy40LDUuNAoJCQkJYzIuMSwyLjMsMy44LDUsNS4xLDguMmMxLjMsMy4yLDIsNi4zLDIuMSw5LjVjMCwwLjMsMCwwLjYsMCwwLjljMCwyLjgtMC41LDUuNi0xLjUsOC4zQy0zODItMTUuNy0zODMuNS0xMy4zLTM4NS40LTExLjJ6CgkJCQkgTS00NTIuMi00Ny43Yy0wLjQsMC41LTEsMC45LTEuNywxLjJjLTAuNywwLjMtMS42LDAuNC0yLjYsMC40Yy0wLjksMC0yLTAuMS0zLjMtMC4zbC0xNC0yLjVjMC4xLDEuMSwwLjcsMi42LDEuNiw0LjQKCQkJCWMxLjEsMiwyLjYsNC40LDQuNyw3LjJsMCwwYzAuNywxLDEuMiwxLjcsMS42LDIuMmMwLjMsMC4zLDAuNiwwLjgsMS4xLDEuNWMzLjIsNC40LDUuMiw3LjksNiwxMC43YzAuNCwxLjYsMC43LDMuMiwwLjgsNC44CgkJCQljMCwwLjQsMCwwLjksMCwxLjNjMCwxLjEtMC4xLDIuMy0wLjMsMy40Yy0wLjIsMS0wLjQsMS45LTAuNywyLjVjLTAuMywwLjctMC43LDEuMi0xLjIsMS41Yy0wLjYsMC40LTEuNCwwLjUtMi40LDAuNQoJCQkJYy0wLjksMC0xLjktMC4xLTMuMS0wLjNsLTE2LjItMi45Yy0yLTAuMy0zLjQtMC45LTQuMy0xLjhjLTAuNy0wLjctMS4xLTEuNi0xLjEtMi43YzAtMC4zLDAtMC42LDAuMS0wLjljMC4yLTEuNCwwLjktMi41LDIuMS0zCgkJCQljMC43LTAuMywxLjUtMC41LDIuNS0wLjVjMC43LDAsMS40LDAuMSwyLjIsMC4ybDEzLjYsMi40YzAtMC4yLDAtMC41LDAtMC43YzAtMC45LTAuMS0xLjctMC40LTIuNmMtMC40LTEuMi0xLjQtMi44LTMtNC45CgkJCQljLTAuNS0wLjYtMS4yLTEuNS0yLjEtMi43Yy0zLjctNC42LTYuMy04LjUtNy45LTExLjhjMCwwLDAsMCwwLDBjMCwwLDAsMCwwLDBjLTEuMS0yLjItMS45LTQuNS0yLjMtNi42CgkJCQljLTAuMy0xLjMtMC40LTIuNS0wLjQtMy43YzAtMC44LDAuMS0xLjYsMC4yLTIuNGMwLjItMS4xLDAuNS0yLjEsMC44LTIuOGMwLjQtMC43LDAuOC0xLjMsMS40LTEuNmMwLjUtMC4zLDEuMy0wLjQsMi40LTAuNAoJCQkJYzEuNCwwLDMuMiwwLjIsNS41LDAuNmwxNC43LDIuNmMyLjYsMC41LDQuNCwxLjEsNS41LDJjMC44LDAuNywxLjMsMS43LDEuMywyLjljMCwwLjMsMCwwLjYtMC4xLDAuOQoJCQkJQy00NTEuNS00OC45LTQ1MS44LTQ4LjItNDUyLjItNDcuN0wtNDUyLjItNDcuN3ogTS00NjQuNy0zMy42TC00NjQuNy0zMy42Qy00NjQuNy0zMy42LTQ2NC43LTMzLjYtNDY0LjctMzMuNkwtNDY0LjctMzMuNgoJCQkJTC00NjQuNy0zMy42eiBNLTI3My4zLTQ2Yy0yLjEtMi42LTUtNC04LjctNGMtMy43LDAtNi42LDEuMy04LjcsNGMtMi4xLDIuNi0zLjIsNi4zLTMuMiwxMC45YzAsNC43LDEuMSw4LjQsMy4yLDExLjEKCQkJCWMyLjEsMi43LDUsNCw4LjcsNGMzLjcsMCw2LjUtMS4zLDguNy00YzIuMS0yLjcsMy4yLTYuMywzLjItMTEuMUMtMjcwLjEtMzkuOC0yNzEuMi00My40LTI3My4zLTQ2eiBNLTI2Mi0yNS44CgkJCQljLTEuMSwyLjgtMi43LDUuNC00LjksNy42Yy0yLjEsMi4yLTQuNCwzLjgtNi45LDQuOWMtMi41LDEuMS01LjMsMS42LTguMywxLjZjLTMsMC01LjgtMC41LTguMy0xLjZjLTIuNi0xLjEtNC45LTIuNy02LjktNC45CgkJCQljLTIuMS0yLjItMy44LTQuOC00LjgtNy42Yy0xLjEtMi44LTEuNi02LTEuNi05LjNjMC0zLjMsMC41LTYuNCwxLjYtOS4zYzEuMS0yLjksMi43LTUuNCw0LjgtNy43YzItMi4xLDQuMy0zLjcsNi44LTQuOAoJCQkJYzIuNi0xLjEsNS40LTEuNiw4LjQtMS42YzIuOSwwLDUuNywwLjUsOC4yLDEuNmMyLjYsMS4xLDQuOSwyLjcsNi45LDQuOGMyLjEsMi4zLDMuOCw0LjgsNC45LDcuN2MxLjEsMi45LDEuNiw2LDEuNiw5LjMKCQkJCVMtMjYwLjktMjguNy0yNjItMjUuOCIvPgoJCTwvZz4KCTwvZz4KPC9nPgo8L3N2Zz4K';
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public getRequestDto(
|
|
49
|
-
dto: AProcessDto,
|
|
50
|
-
applicationInstall: ApplicationInstall,
|
|
51
|
-
method: HttpMethods,
|
|
52
|
-
uri?: string,
|
|
53
|
-
data?: unknown,
|
|
54
|
-
): Promise<RequestDto> | RequestDto {
|
|
55
|
-
const domain = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM][TOKEN][API_DOMAIN];
|
|
56
|
-
const url = `${domain}${API_PATH}${uri}`;
|
|
57
|
-
|
|
58
|
-
const request = new RequestDto(url ?? '', method, dto);
|
|
59
|
-
request.setHeaders({
|
|
60
|
-
[CommonHeaders.CONTENT_TYPE]: JSON_TYPE,
|
|
61
|
-
[CommonHeaders.ACCEPT]: JSON_TYPE,
|
|
62
|
-
[CommonHeaders.AUTHORIZATION]: `Zoho-oauthtoken ${this.getAccessToken(applicationInstall)}`,
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
if (data) {
|
|
66
|
-
request.setJsonBody(data);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return request;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
public getScopes(
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
74
|
-
applicationInstall: ApplicationInstall,
|
|
75
|
-
): string[] {
|
|
76
|
-
return ['ZohoCRM.modules.ALL', 'ZohoCRM.settings.ALL', 'ZohoCreator.form.ALL', 'ZohoCreator.report.ALL'];
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
public getFormStack(): FormStack {
|
|
80
|
-
const form = new Form(CoreFormsEnum.AUTHORIZATION_FORM, getFormName(CoreFormsEnum.AUTHORIZATION_FORM))
|
|
81
|
-
.addField(new Field(FieldType.TEXT, CLIENT_ID, 'Client Id', undefined, true))
|
|
82
|
-
.addField(new Field(FieldType.TEXT, CLIENT_SECRET, 'Client Secret', undefined, true));
|
|
83
|
-
|
|
84
|
-
const creatorForm = new Form(CREATOR_FORM, 'Creator settings')
|
|
85
|
-
.addField(new Field(FieldType.TEXT, ACCOUNT_OWNER_NAME, 'Account owner name', undefined, true))
|
|
86
|
-
.addField(new Field(FieldType.TEXT, APP_LINK_NAME, 'App link name', undefined, true))
|
|
87
|
-
.addField(new Field(FieldType.TEXT, FORM_LINK_NAME, 'Form link name', undefined, true))
|
|
88
|
-
.addField(new Field(FieldType.TEXT, REPORT_LINK_NAME, 'report_link_name', undefined, true));
|
|
89
|
-
|
|
90
|
-
return new FormStack()
|
|
91
|
-
.addForm(form)
|
|
92
|
-
.addForm(creatorForm);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
public isAuthorized(applicationInstall: ApplicationInstall): boolean {
|
|
96
|
-
const authorizationForm = applicationInstall.getSettings()[CoreFormsEnum.AUTHORIZATION_FORM];
|
|
97
|
-
const creatorForm = applicationInstall.getSettings()[CREATOR_FORM];
|
|
98
|
-
return super.isAuthorized(applicationInstall)
|
|
99
|
-
&& authorizationForm?.[CLIENT_ID]
|
|
100
|
-
&& authorizationForm?.[CLIENT_SECRET]
|
|
101
|
-
&& creatorForm?.[ACCOUNT_OWNER_NAME]
|
|
102
|
-
&& creatorForm?.[APP_LINK_NAME]
|
|
103
|
-
&& creatorForm?.[FORM_LINK_NAME]
|
|
104
|
-
&& creatorForm?.[REPORT_LINK_NAME];
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
public getTokenUrl(): string {
|
|
108
|
-
return 'https://accounts.zoho.eu/oauth/v2/token';
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
protected getScopesSeparator(): string {
|
|
112
|
-
return ScopeSeparatorEnum.SPACE;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}
|