@orchesty/connector-raynet-crm 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 (118) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +190 -0
  3. package/coverage/clover.xml +283 -0
  4. package/coverage/coverage-final.json +13 -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/RaynetCRMGetActivities.ts.html +385 -0
  14. package/coverage/lcov-report/src/Batch/RaynetCRMGetClients.ts.html +679 -0
  15. package/coverage/lcov-report/src/Batch/RaynetCRMGetContactPersons.ts.html +553 -0
  16. package/coverage/lcov-report/src/Batch/RaynetCRMSubscribeWebhook.ts.html +355 -0
  17. package/coverage/lcov-report/src/Batch/RaynetCRMUnregisterWebhook.ts.html +241 -0
  18. package/coverage/lcov-report/src/Batch/index.html +176 -0
  19. package/coverage/lcov-report/src/Connector/RaynetCRMGetVoipByTel.ts.html +856 -0
  20. package/coverage/lcov-report/src/Connector/RaynetCRMUniversalActivityDetail.ts.html +448 -0
  21. package/coverage/lcov-report/src/Connector/RaynetCRMUniversalCreateActivity.ts.html +223 -0
  22. package/coverage/lcov-report/src/Connector/RaynetCRMUniversalDeleteActivity.ts.html +184 -0
  23. package/coverage/lcov-report/src/Connector/RaynetCRMUniversalUpdateActivity.ts.html +205 -0
  24. package/coverage/lcov-report/src/Connector/index.html +176 -0
  25. package/coverage/lcov-report/src/RaynetCRMApplication.ts.html +331 -0
  26. package/coverage/lcov-report/src/index.html +116 -0
  27. package/coverage/lcov-report/test/dataProvider.ts.html +205 -0
  28. package/coverage/lcov-report/test/index.html +116 -0
  29. package/coverage/lcov.info +465 -0
  30. package/dist/Batch/RaynetCRMGetActivities.d.ts +58 -0
  31. package/dist/Batch/RaynetCRMGetActivities.js +38 -0
  32. package/dist/Batch/RaynetCRMGetClients.d.ts +161 -0
  33. package/dist/Batch/RaynetCRMGetClients.js +33 -0
  34. package/dist/Batch/RaynetCRMGetContactPersons.d.ts +119 -0
  35. package/dist/Batch/RaynetCRMGetContactPersons.js +33 -0
  36. package/dist/Batch/RaynetCRMSubscribeWebhook.d.ts +15 -0
  37. package/dist/Batch/RaynetCRMSubscribeWebhook.js +64 -0
  38. package/dist/Batch/RaynetCRMUnregisterWebhook.d.ts +7 -0
  39. package/dist/Batch/RaynetCRMUnregisterWebhook.js +39 -0
  40. package/dist/Connector/RaynetCRMGetVoipByTel.d.ts +225 -0
  41. package/dist/Connector/RaynetCRMGetVoipByTel.js +27 -0
  42. package/dist/Connector/RaynetCRMUniversalActivityDetail.d.ts +86 -0
  43. package/dist/Connector/RaynetCRMUniversalActivityDetail.js +31 -0
  44. package/dist/Connector/RaynetCRMUniversalCreateActivity.d.ts +18 -0
  45. package/dist/Connector/RaynetCRMUniversalCreateActivity.js +25 -0
  46. package/dist/Connector/RaynetCRMUniversalDeleteActivity.d.ts +12 -0
  47. package/dist/Connector/RaynetCRMUniversalDeleteActivity.js +22 -0
  48. package/dist/Connector/RaynetCRMUniversalUpdateActivity.d.ts +11 -0
  49. package/dist/Connector/RaynetCRMUniversalUpdateActivity.js +27 -0
  50. package/dist/RaynetCRMApplication.d.ts +19 -0
  51. package/dist/RaynetCRMApplication.js +92 -0
  52. package/dist/package.json +23 -0
  53. package/jest.config.js +13 -0
  54. package/package.json +23 -0
  55. package/src/Batch/RaynetCRMGetActivities.ts +100 -0
  56. package/src/Batch/RaynetCRMGetClients.ts +198 -0
  57. package/src/Batch/RaynetCRMGetContactPersons.ts +156 -0
  58. package/src/Batch/RaynetCRMSubscribeWebhook.ts +90 -0
  59. package/src/Batch/RaynetCRMUnregisterWebhook.ts +52 -0
  60. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/from-input.json +8 -0
  61. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/from-mock.json +64 -0
  62. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/from-output.json +11 -0
  63. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/input.json +6 -0
  64. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/mock.json +64 -0
  65. package/src/Batch/__tests__/Data/RaynetCRMGetActivities/output.json +11 -0
  66. package/src/Batch/__tests__/Data/RaynetCRMGetClients/email-input.json +8 -0
  67. package/src/Batch/__tests__/Data/RaynetCRMGetClients/email-mock.json +157 -0
  68. package/src/Batch/__tests__/Data/RaynetCRMGetClients/email-output.json +11 -0
  69. package/src/Batch/__tests__/Data/RaynetCRMGetClients/input.json +6 -0
  70. package/src/Batch/__tests__/Data/RaynetCRMGetClients/mock.json +157 -0
  71. package/src/Batch/__tests__/Data/RaynetCRMGetClients/output.json +11 -0
  72. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/email-input.json +8 -0
  73. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/email-mock.json +157 -0
  74. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/email-output.json +11 -0
  75. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/input.json +6 -0
  76. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/mock.json +112 -0
  77. package/src/Batch/__tests__/Data/RaynetCRMGetContactPersons/output.json +11 -0
  78. package/src/Batch/__tests__/Data/RaynetCRMSubscribeWebhook/input.json +6 -0
  79. package/src/Batch/__tests__/Data/RaynetCRMSubscribeWebhook/mock.json +10 -0
  80. package/src/Batch/__tests__/Data/RaynetCRMSubscribeWebhook/output.json +6 -0
  81. package/src/Batch/__tests__/Data/RaynetCRMUnregisterWebhook/input.json +6 -0
  82. package/src/Batch/__tests__/Data/RaynetCRMUnregisterWebhook/mock.json +7 -0
  83. package/src/Batch/__tests__/Data/RaynetCRMUnregisterWebhook/output.json +6 -0
  84. package/src/Batch/__tests__/RaynetCRMGetActivities.ts +23 -0
  85. package/src/Batch/__tests__/RaynetCRMGetClients.ts +23 -0
  86. package/src/Batch/__tests__/RaynetCRMGetContactPersons.ts +23 -0
  87. package/src/Batch/__tests__/RaynetCRMSubscribeWebhook.ts +18 -0
  88. package/src/Batch/__tests__/RaynetCRMUnregisterWebhook.ts +42 -0
  89. package/src/Connector/RaynetCRMGetVoipByTel.ts +257 -0
  90. package/src/Connector/RaynetCRMUniversalActivityDetail.ts +121 -0
  91. package/src/Connector/RaynetCRMUniversalCreateActivity.ts +46 -0
  92. package/src/Connector/RaynetCRMUniversalDeleteActivity.ts +33 -0
  93. package/src/Connector/RaynetCRMUniversalUpdateActivity.ts +40 -0
  94. package/src/Connector/__tests__/Data/RaynetCRMGetVoipByTel/input.json +8 -0
  95. package/src/Connector/__tests__/Data/RaynetCRMGetVoipByTel/mock.json +216 -0
  96. package/src/Connector/__tests__/Data/RaynetCRMGetVoipByTel/output.json +217 -0
  97. package/src/Connector/__tests__/Data/RaynetCRMUniversalActivityDetail/input.json +22 -0
  98. package/src/Connector/__tests__/Data/RaynetCRMUniversalActivityDetail/mock.json +84 -0
  99. package/src/Connector/__tests__/Data/RaynetCRMUniversalActivityDetail/output.json +83 -0
  100. package/src/Connector/__tests__/Data/RaynetCRMUniversalCreateActivity/input.json +83 -0
  101. package/src/Connector/__tests__/Data/RaynetCRMUniversalCreateActivity/mock.json +10 -0
  102. package/src/Connector/__tests__/Data/RaynetCRMUniversalCreateActivity/output.json +11 -0
  103. package/src/Connector/__tests__/Data/RaynetCRMUniversalDeleteActivity/input.json +9 -0
  104. package/src/Connector/__tests__/Data/RaynetCRMUniversalDeleteActivity/mock.json +7 -0
  105. package/src/Connector/__tests__/Data/RaynetCRMUniversalDeleteActivity/output.json +8 -0
  106. package/src/Connector/__tests__/Data/RaynetCRMUniversalUpdateActivity/input.json +83 -0
  107. package/src/Connector/__tests__/Data/RaynetCRMUniversalUpdateActivity/mock.json +7 -0
  108. package/src/Connector/__tests__/Data/RaynetCRMUniversalUpdateActivity/output.json +8 -0
  109. package/src/Connector/__tests__/RaynetCRMGetVoipByTel.ts +18 -0
  110. package/src/Connector/__tests__/RaynetCRMUniversalActivityDetail.ts +18 -0
  111. package/src/Connector/__tests__/RaynetCRMUniversalCreateActivity.ts +18 -0
  112. package/src/Connector/__tests__/RaynetCRMUniversalDeleteActivity.ts +18 -0
  113. package/src/Connector/__tests__/RaynetCRMUniversalUpdateActivity.ts +18 -0
  114. package/src/RaynetCRMApplication.ts +82 -0
  115. package/test/dataProvider.ts +40 -0
  116. package/tsconfig.json +8 -0
  117. package/tsconfig.prod.json +13 -0
  118. package/tsconfig.prod.tsbuildinfo +1 -0
@@ -0,0 +1,33 @@
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.LIMIT = 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 = 'raynet-crm-get-clients';
10
+ exports.LIMIT = 1000;
11
+ class RaynetCRMGetClients extends ABatchNode_1.default {
12
+ limit = exports.LIMIT;
13
+ getName() {
14
+ return exports.NAME;
15
+ }
16
+ async processAction(dto) {
17
+ const email = this.getData(dto);
18
+ const page = Number(dto.getBatchCursor('0'));
19
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto), HttpMethods_1.HttpMethods.GET, `company?offset=${page}&limit=${this.limit}${email ? `&primaryAddress-contactInfo.email=${email}` : ''}`);
20
+ return this.processResponse(dto, await this.getSender().send(req, [200]), page);
21
+ }
22
+ getData(dto) {
23
+ return dto.getJsonData().email ?? '';
24
+ }
25
+ processResponse(dto, resp, page) {
26
+ const { totalCount } = resp.getJsonBody();
27
+ if (totalCount && totalCount > this.limit * (page + 1)) {
28
+ dto.setBatchCursor(String(page + 1));
29
+ }
30
+ return dto.setItemList(resp.getJsonBody().data);
31
+ }
32
+ }
33
+ exports.default = RaynetCRMGetClients;
@@ -0,0 +1,119 @@
1
+ import ABatchNode from '@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode';
2
+ import ResponseDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/ResponseDto';
3
+ import BatchProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/BatchProcessDto';
4
+ export declare const NAME = "raynet-crm-get-contact-persons";
5
+ export declare const LIMIT = 1000;
6
+ export default class RaynetCRMGetContactPersons extends ABatchNode {
7
+ protected limit: number;
8
+ getName(): string;
9
+ processAction(dto: BatchProcessDto<IInput>): Promise<BatchProcessDto>;
10
+ protected getData(dto: BatchProcessDto<IInput>): string;
11
+ protected processResponse(dto: BatchProcessDto, resp: ResponseDto<IResponse>, page: number): BatchProcessDto;
12
+ }
13
+ export interface IInput {
14
+ email?: string;
15
+ }
16
+ export interface IResponse {
17
+ success: string;
18
+ totalCount: number;
19
+ data: {
20
+ id: number;
21
+ titleBefore: string;
22
+ firstName: string;
23
+ lastName: string;
24
+ titleAfter: string;
25
+ primaryRelationship: {
26
+ id: number;
27
+ type: string;
28
+ company: {
29
+ id: number;
30
+ name: string;
31
+ };
32
+ };
33
+ owner: {
34
+ id: number;
35
+ fullName: string;
36
+ };
37
+ contactInfo: {
38
+ email: string;
39
+ email2: string;
40
+ tel1: string;
41
+ tel1Type: string;
42
+ tel2?: unknown;
43
+ tel2Type?: unknown;
44
+ www?: unknown;
45
+ otherContact?: unknown;
46
+ };
47
+ privateAddress: {
48
+ city: string;
49
+ country: string;
50
+ countryCode: string;
51
+ province?: unknown;
52
+ street: string;
53
+ zipCode: string;
54
+ };
55
+ category: {
56
+ id: number;
57
+ value: string;
58
+ };
59
+ personClassification1: {
60
+ id: number;
61
+ value: string;
62
+ };
63
+ personClassification2: {
64
+ id: number;
65
+ value: string;
66
+ };
67
+ personClassification3: {
68
+ id: number;
69
+ value: string;
70
+ };
71
+ salutation: string;
72
+ birthday: string;
73
+ language: {
74
+ id: number;
75
+ value: string;
76
+ };
77
+ maritalStatus: {
78
+ id: number;
79
+ value: string;
80
+ };
81
+ gender: string;
82
+ companyAddress: {
83
+ address: {
84
+ id: number;
85
+ city: string;
86
+ country: string;
87
+ countryCode: string;
88
+ province?: unknown;
89
+ street: string;
90
+ zipCode: string;
91
+ };
92
+ territory?: unknown;
93
+ };
94
+ customFields?: unknown;
95
+ 'rowInfo.createdAt': string;
96
+ 'rowInfo.createdBy': string;
97
+ 'rowInfo.updatedAt': string;
98
+ 'rowInfo.updatedBy': string;
99
+ 'rowInfo.rowAccess'?: unknown;
100
+ 'rowInfo.rowState'?: unknown;
101
+ securityLevel: {
102
+ id: number;
103
+ name: string;
104
+ };
105
+ notice: string;
106
+ activeUserAccount: boolean;
107
+ keyman: boolean;
108
+ tags: unknown[];
109
+ _version: number;
110
+ inlineGdpr: {
111
+ id: number;
112
+ validFrom: string;
113
+ validTill: string;
114
+ legalTitle: string;
115
+ templateName: string;
116
+ gdprTemplate: number;
117
+ }[];
118
+ }[];
119
+ }
@@ -0,0 +1,33 @@
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.LIMIT = 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 = 'raynet-crm-get-contact-persons';
10
+ exports.LIMIT = 1000;
11
+ class RaynetCRMGetContactPersons extends ABatchNode_1.default {
12
+ limit = exports.LIMIT;
13
+ getName() {
14
+ return exports.NAME;
15
+ }
16
+ async processAction(dto) {
17
+ const email = this.getData(dto);
18
+ const page = Number(dto.getBatchCursor('0'));
19
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto), HttpMethods_1.HttpMethods.GET, `person?offset=${page}&limit=${this.limit}${email ? `&contactInfo.email=${email}` : ''}`);
20
+ return this.processResponse(dto, await this.getSender().send(req, [200]), page);
21
+ }
22
+ getData(dto) {
23
+ return dto.getJsonData().email ?? '';
24
+ }
25
+ processResponse(dto, resp, page) {
26
+ const { totalCount } = resp.getJsonBody();
27
+ if (totalCount && totalCount > this.limit * (page + 1)) {
28
+ dto.setBatchCursor(String(page + 1));
29
+ }
30
+ return dto.setItemList(resp.getJsonBody().data);
31
+ }
32
+ }
33
+ exports.default = RaynetCRMGetContactPersons;
@@ -0,0 +1,15 @@
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 = "raynet-crm-subscribe-webhook";
4
+ export declare function getEntities(): string[];
5
+ export default class RaynetCRMSubscribeWebhook extends ABatchNode {
6
+ getName(): string;
7
+ processAction(dto: BatchProcessDto): Promise<BatchProcessDto>;
8
+ private getRandomToken;
9
+ }
10
+ export interface IResponseJson {
11
+ success: boolean;
12
+ data: {
13
+ uuid: string;
14
+ };
15
+ }
@@ -0,0 +1,64 @@
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
+ exports.getEntities = getEntities;
8
+ const ApplicationInstall_1 = require("@orchesty/nodejs-sdk/dist/lib/Application/Database/ApplicationInstall");
9
+ const Webhook_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Application/Database/Webhook"));
10
+ const ABatchNode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Batch/ABatchNode"));
11
+ const TopologyRunner_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Topology/TopologyRunner"));
12
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
13
+ const ResultCode_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Utils/ResultCode"));
14
+ const crypto_1 = __importDefault(require("crypto"));
15
+ exports.NAME = 'raynet-crm-subscribe-webhook';
16
+ function getEntities() {
17
+ return ['Task', 'Email', 'Meeting', 'Letter', 'PhoneCall', 'Event'];
18
+ }
19
+ class RaynetCRMSubscribeWebhook extends ABatchNode_1.default {
20
+ getName() {
21
+ return exports.NAME;
22
+ }
23
+ async processAction(dto) {
24
+ const app = this.getApplication();
25
+ const webhookIndex = Number(dto.getBatchCursor('0'));
26
+ const webhooks = app.getWebhookSubscriptions();
27
+ if (webhooks.length > 0) {
28
+ const appInstall = await this.getApplicationInstallFromProcess(dto);
29
+ const repo = this.getDbClient().getRepository(Webhook_1.default);
30
+ const token = this.getRandomToken();
31
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.PUT, 'webhook', {
32
+ url: TopologyRunner_1.default.getWebhookUrl(webhooks[webhookIndex].getTopology(), webhooks[webhookIndex].getNode(), token),
33
+ events: webhooks[webhookIndex].getName().split(','),
34
+ entityFilter: getEntities(),
35
+ });
36
+ let res;
37
+ try {
38
+ res = await this.getSender().send(requestDto, [201]);
39
+ const respBody = res.getJsonBody();
40
+ await repo.insert(new Webhook_1.default()
41
+ .setWebhookId(respBody.data.uuid)
42
+ .setUser(appInstall.getUser())
43
+ .setNode(webhooks[webhookIndex].getNode())
44
+ .setToken(token)
45
+ .setApplication(app.getName())
46
+ .setTopology(webhooks[webhookIndex].getTopology())
47
+ .setName(webhooks[webhookIndex].getName()));
48
+ if (webhooks.length - 1 > webhookIndex) {
49
+ dto.setBatchCursor((webhookIndex + 1).toString());
50
+ }
51
+ }
52
+ catch (e) {
53
+ appInstall.setEnabled(false);
54
+ await this.getDbClient().getRepository(ApplicationInstall_1.ApplicationInstall).update(appInstall);
55
+ dto.setStopProcess(ResultCode_1.default.STOP_AND_FAILED, res?.getBody() ?? 'Webhook could not be registered!');
56
+ }
57
+ }
58
+ return dto;
59
+ }
60
+ getRandomToken() {
61
+ return crypto_1.default.randomBytes(64).toString('hex');
62
+ }
63
+ }
64
+ exports.default = RaynetCRMSubscribeWebhook;
@@ -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 NAME = "raynet-crm-unregister-webhook";
4
+ export default class RaynetCRMUnregisterWebhook extends ABatchNode {
5
+ getName(): string;
6
+ processAction(dto: BatchProcessDto): Promise<BatchProcessDto>;
7
+ }
@@ -0,0 +1,39 @@
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 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.NAME = 'raynet-crm-unregister-webhook';
13
+ class RaynetCRMUnregisterWebhook extends ABatchNode_1.default {
14
+ getName() {
15
+ return exports.NAME;
16
+ }
17
+ async processAction(dto) {
18
+ const app = this.getApplication();
19
+ const appInstall = await this.getApplicationInstallFromProcess(dto, null, true);
20
+ const repo = this.getDbClient().getRepository(Webhook_1.default);
21
+ const webhooks = await repo.findMany({ users: [appInstall.getUser()], apps: [app.getName()] });
22
+ if (webhooks && webhooks.length > 0) {
23
+ const webhookId = webhooks[0].getWebhookId();
24
+ const requestDto = app.getRequestDto(dto, appInstall, HttpMethods_1.HttpMethods.DELETE, `webhook/${webhookId}`);
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
+ webhooks[0].setUnsubscribeFailed(true);
28
+ await repo.update(webhooks[0]);
29
+ throw new OnRepeatException_1.default(60, 10, res.getBody());
30
+ }
31
+ await repo.remove(webhooks[0]);
32
+ if (webhooks.length > 1) {
33
+ dto.setBatchCursor('next');
34
+ }
35
+ }
36
+ return dto;
37
+ }
38
+ }
39
+ exports.default = RaynetCRMUnregisterWebhook;
@@ -0,0 +1,225 @@
1
+ import AConnector from '@orchesty/nodejs-sdk/dist/lib/Connector/AConnector';
2
+ import ResponseDto from '@orchesty/nodejs-sdk/dist/lib/Transport/Curl/ResponseDto';
3
+ import ProcessDto from '@orchesty/nodejs-sdk/dist/lib/Utils/ProcessDto';
4
+ export declare const NAME = "raynet-crm-get-voip-by-tel";
5
+ export default class RaynetCRMGetVoipByTel extends AConnector {
6
+ getName(): string;
7
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IOutput>>;
8
+ protected getData(dto: ProcessDto<IInput>): string;
9
+ protected processResult(dto: ProcessDto, resp: ResponseDto<IResponse>): ProcessDto<IOutput>;
10
+ }
11
+ export interface IInput {
12
+ tel: string;
13
+ }
14
+ export interface IResponse {
15
+ success: boolean;
16
+ data: IOutput;
17
+ }
18
+ export interface IOutput {
19
+ person: IContact[];
20
+ company: IContact[];
21
+ lead: IContact[];
22
+ }
23
+ export interface IContact {
24
+ id: number;
25
+ _permission: number;
26
+ _version: number;
27
+ name: string;
28
+ state: string;
29
+ role: string;
30
+ owner: {
31
+ id: number;
32
+ _permission: number;
33
+ _version: number;
34
+ gender?: unknown;
35
+ fullName: string;
36
+ fullNameWithoutTitles: string;
37
+ firstName: string;
38
+ lastName: string;
39
+ titleBefore?: unknown;
40
+ notice?: unknown;
41
+ titleAfter?: unknown;
42
+ photo?: unknown;
43
+ category?: unknown;
44
+ salutation?: unknown;
45
+ personClassification1?: unknown;
46
+ personClassification2?: unknown;
47
+ personClassification3?: unknown;
48
+ customFields?: unknown;
49
+ 'contactInfo.tel1': string;
50
+ 'contactInfo.tel1Type'?: unknown;
51
+ 'contactInfo.tel2'?: unknown;
52
+ 'contactInfo.tel2Type'?: unknown;
53
+ 'contactInfo.email': string;
54
+ 'contactInfo.email2'?: unknown;
55
+ 'contactInfo.www'?: unknown;
56
+ 'privateAddress.countryCode'?: unknown;
57
+ activeUserAccount: boolean;
58
+ extIds?: unknown;
59
+ securityLevel: {
60
+ id: number;
61
+ _permission: number;
62
+ name: string;
63
+ locked: boolean;
64
+ extIds?: unknown;
65
+ };
66
+ };
67
+ rating: string;
68
+ regNumber: string;
69
+ taxNumber: string;
70
+ paymentTerm: {
71
+ id: number;
72
+ _permission: number;
73
+ code01: string;
74
+ code02?: unknown;
75
+ numValue01: number;
76
+ numValue02: number;
77
+ strValue01?: unknown;
78
+ strValue02?: unknown;
79
+ rowAccess?: unknown;
80
+ extIds?: unknown;
81
+ };
82
+ logo: {
83
+ id: number;
84
+ _permission: number;
85
+ _version: number;
86
+ contentType: string;
87
+ fileName: string;
88
+ iconSmallSize: number;
89
+ iconSmallUuid?: unknown;
90
+ size: number;
91
+ preview: boolean;
92
+ uuid: string;
93
+ iconMediumUuid: string;
94
+ iconMediumSize: number;
95
+ iconLargeUuid?: unknown;
96
+ iconLargeSize: number;
97
+ };
98
+ birthday: string;
99
+ birthdayMonthDay: string;
100
+ primaryAddress: {
101
+ id: number;
102
+ _permission: number;
103
+ _version: number;
104
+ 'address.name': string;
105
+ 'address.street': string;
106
+ 'address.province'?: unknown;
107
+ 'address.zipCode': string;
108
+ 'address.city': string;
109
+ 'address.countryCode': string;
110
+ 'address.countryName': string;
111
+ 'address.lat': number;
112
+ 'address.lng': number;
113
+ territory?: unknown;
114
+ 'contactInfo.tel1': string;
115
+ 'contactInfo.tel1Normalized': string;
116
+ 'contactInfo.tel1Type'?: unknown;
117
+ 'contactInfo.tel2'?: unknown;
118
+ 'contactInfo.tel2Normalized'?: unknown;
119
+ 'contactInfo.tel2Type'?: unknown;
120
+ 'contactInfo.email': string;
121
+ 'contactInfo.email2'?: unknown;
122
+ 'contactInfo.www': string;
123
+ 'contactInfo.fax'?: unknown;
124
+ 'contactInfo.doNotSendMM': boolean;
125
+ 'contactInfo.otherContact'?: unknown;
126
+ primary: boolean;
127
+ extIds?: unknown;
128
+ contactAddress: boolean;
129
+ };
130
+ contactAddress: {
131
+ id: number;
132
+ _permission: number;
133
+ _version: number;
134
+ 'address.name': string;
135
+ 'address.street': string;
136
+ 'address.province'?: unknown;
137
+ 'address.zipCode': string;
138
+ 'address.city': string;
139
+ 'address.countryCode': string;
140
+ 'address.countryName': string;
141
+ 'address.lat': number;
142
+ 'address.lng': number;
143
+ territory?: unknown;
144
+ 'contactInfo.tel1': string;
145
+ 'contactInfo.tel1Normalized': string;
146
+ 'contactInfo.tel1Type'?: unknown;
147
+ 'contactInfo.tel2'?: unknown;
148
+ 'contactInfo.tel2Normalized'?: unknown;
149
+ 'contactInfo.tel2Type'?: unknown;
150
+ 'contactInfo.email': string;
151
+ 'contactInfo.email2'?: unknown;
152
+ 'contactInfo.www': string;
153
+ 'contactInfo.fax'?: unknown;
154
+ 'contactInfo.doNotSendMM': boolean;
155
+ 'contactInfo.otherContact'?: unknown;
156
+ primary: boolean;
157
+ extIds?: unknown;
158
+ contactAddress: boolean;
159
+ };
160
+ 'rowInfo.createdAt': string;
161
+ 'rowInfo.createdBy': string;
162
+ 'rowInfo.lastModifiedAt': string;
163
+ 'rowInfo.lastModifiedBy': string;
164
+ securityLevel: {
165
+ id: number;
166
+ _permission: number;
167
+ name: string;
168
+ locked: boolean;
169
+ extIds?: unknown;
170
+ };
171
+ validFrom: string;
172
+ person: boolean;
173
+ 'socialNetworkContact.facebook': string;
174
+ 'currentBusinessValue.businessValue': number;
175
+ 'currentBusinessValue.openBusinessValue': number;
176
+ legalForm: {
177
+ id: number;
178
+ _permission: number;
179
+ code01: string;
180
+ strValue01?: unknown;
181
+ rowAccess?: unknown;
182
+ };
183
+ category?: unknown;
184
+ economyActivity?: unknown;
185
+ turnover?: unknown;
186
+ notice?: unknown;
187
+ contactSource?: unknown;
188
+ employeesNumber?: unknown;
189
+ taxNumber2?: unknown;
190
+ bankAccount?: unknown;
191
+ taxPayer?: unknown;
192
+ databox?: unknown;
193
+ court?: unknown;
194
+ originLead?: unknown;
195
+ companyClassification1?: unknown;
196
+ companyClassification2?: unknown;
197
+ companyClassification3?: unknown;
198
+ prevActivity?: unknown;
199
+ nextActivity?: unknown;
200
+ lastWonBc?: unknown;
201
+ 'rowInfo.rowAccess'?: unknown;
202
+ 'rowInfo.rowState'?: unknown;
203
+ 'rowInfo.updatedAt'?: unknown;
204
+ 'rowInfo.updatedBy'?: unknown;
205
+ tags?: unknown;
206
+ validTill?: unknown;
207
+ customFields?: unknown;
208
+ 'socialNetworkContact.googleplus'?: unknown;
209
+ 'socialNetworkContact.twitter'?: unknown;
210
+ 'socialNetworkContact.linkedin'?: unknown;
211
+ 'socialNetworkContact.pinterest'?: unknown;
212
+ 'socialNetworkContact.instagram'?: unknown;
213
+ 'socialNetworkContact.skype'?: unknown;
214
+ 'socialNetworkContact.youtube'?: unknown;
215
+ firstName?: unknown;
216
+ lastName?: unknown;
217
+ salutation?: unknown;
218
+ titleAfter?: unknown;
219
+ titleBefore?: unknown;
220
+ fullName?: unknown;
221
+ inlineGdpr?: unknown;
222
+ inlineSign?: unknown;
223
+ extIds?: unknown;
224
+ noticeJson?: unknown;
225
+ }
@@ -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 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 = 'raynet-crm-get-voip-by-tel';
10
+ class RaynetCRMGetVoipByTel extends AConnector_1.default {
11
+ getName() {
12
+ return exports.NAME;
13
+ }
14
+ async processAction(dto) {
15
+ const tel = this.getData(dto);
16
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto), HttpMethods_1.HttpMethods.GET, `voip/searchByTel?query=${tel}`);
17
+ const resp = await this.getSender().send(req, [201]);
18
+ return this.processResult(dto, resp);
19
+ }
20
+ getData(dto) {
21
+ return dto.getJsonData().tel;
22
+ }
23
+ processResult(dto, resp) {
24
+ return dto.setNewJsonData(resp.getJsonBody());
25
+ }
26
+ }
27
+ exports.default = RaynetCRMGetVoipByTel;
@@ -0,0 +1,86 @@
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 = "raynet-crm-universal-activity-detail";
4
+ export declare function getEntityType(entityName: string): string;
5
+ export default class RaynetCRMUniversalActivityDetail extends AConnector {
6
+ getName(): string;
7
+ processAction(dto: ProcessDto<IInput>): Promise<ProcessDto<IActivityData>>;
8
+ }
9
+ export interface IInput {
10
+ eventId: string;
11
+ createdAt: string;
12
+ type: string;
13
+ author: string;
14
+ source: {
15
+ name: string;
16
+ description: string;
17
+ };
18
+ data: {
19
+ entityName: string;
20
+ entityId: number;
21
+ extIds: string[];
22
+ };
23
+ }
24
+ export interface IResponse {
25
+ success: string;
26
+ data: IActivityData;
27
+ }
28
+ export interface IActivityData {
29
+ id: number;
30
+ title: string;
31
+ completed: string;
32
+ campaignName: string;
33
+ source: string;
34
+ externalOverviewUrl: string;
35
+ externalThumbnailUrl: string;
36
+ _version: number;
37
+ stats: {
38
+ sent: string;
39
+ clicked: string;
40
+ opened: string;
41
+ unsubscribed: string;
42
+ };
43
+ category: {
44
+ id: number;
45
+ value: string;
46
+ };
47
+ priority: string;
48
+ status: string;
49
+ personal: boolean;
50
+ owner: number;
51
+ resolver: number;
52
+ company: {
53
+ id: number;
54
+ name: string;
55
+ };
56
+ scheduledFrom: string;
57
+ scheduledTill: string;
58
+ description: string;
59
+ solution: string;
60
+ tags: undefined[];
61
+ 'rowInfo.createdAt': string;
62
+ 'rowInfo.createdBy': string;
63
+ 'rowInfo.updatedAt': string;
64
+ 'rowInfo.updatedBy': string;
65
+ securityLevel: {
66
+ id: number;
67
+ name: string;
68
+ };
69
+ customFields: unknown;
70
+ participants: {
71
+ id: number;
72
+ owner: boolean;
73
+ name: string;
74
+ person: number;
75
+ company: number;
76
+ }[];
77
+ recurrence: {
78
+ id: number;
79
+ count: number;
80
+ interval: string;
81
+ recurrenceDay: number;
82
+ startDate: string;
83
+ };
84
+ deadline: string;
85
+ meetingPlace: string;
86
+ }
@@ -0,0 +1,31 @@
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
+ exports.getEntityType = getEntityType;
8
+ const AConnector_1 = __importDefault(require("@orchesty/nodejs-sdk/dist/lib/Connector/AConnector"));
9
+ const HttpMethods_1 = require("@orchesty/nodejs-sdk/dist/lib/Transport/HttpMethods");
10
+ exports.NAME = 'raynet-crm-universal-activity-detail';
11
+ function getEntityType(entityName) {
12
+ let name = entityName.toLocaleLowerCase();
13
+ if (name === 'phonecall') {
14
+ name = 'phoneCall';
15
+ }
16
+ return name;
17
+ }
18
+ class RaynetCRMUniversalActivityDetail extends AConnector_1.default {
19
+ getName() {
20
+ return exports.NAME;
21
+ }
22
+ async processAction(dto) {
23
+ const data = dto.getJsonData();
24
+ const { entityName, entityId } = data.data;
25
+ const entityType = getEntityType(entityName);
26
+ const req = await this.getApplication().getRequestDto(dto, await this.getApplicationInstallFromProcess(dto), HttpMethods_1.HttpMethods.GET, `${entityType}/${entityId}?dateFormat=ISO8601`);
27
+ const resp = await this.getSender().send(req, [200]);
28
+ return dto.setNewJsonData({ ...resp.getJsonBody().data, _entityName: entityName });
29
+ }
30
+ }
31
+ exports.default = RaynetCRMUniversalActivityDetail;