@klardaten/n8n-nodes-datevconnect 1.0.2 → 1.0.3

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 (79) hide show
  1. package/README.md +7 -10
  2. package/dist/credentials/DatevConnectApi.credentials.js +68 -95
  3. package/dist/nodes/Accounting/Accounting.config.js +1373 -0
  4. package/dist/nodes/Accounting/Accounting.node.js +180 -5153
  5. package/dist/nodes/Accounting/handlers/AccountPostingResourceHandler.js +40 -0
  6. package/dist/nodes/Accounting/handlers/AccountingSequenceResourceHandler.js +72 -0
  7. package/dist/nodes/Accounting/handlers/AccountingStatisticsResourceHandler.js +38 -0
  8. package/dist/nodes/Accounting/handlers/AccountingSumsAndBalancesResourceHandler.js +52 -0
  9. package/dist/nodes/Accounting/handlers/AccountingTransactionKeysResourceHandler.js +53 -0
  10. package/dist/nodes/Accounting/handlers/AccountsPayableResourceHandler.js +67 -0
  11. package/dist/nodes/Accounting/handlers/AccountsReceivableResourceHandler.js +48 -0
  12. package/dist/nodes/Accounting/handlers/BaseResourceHandler.js +148 -0
  13. package/dist/nodes/Accounting/handlers/BusinessPartnersResourceHandler.js +207 -0
  14. package/dist/nodes/Accounting/handlers/ClientResourceHandler.js +52 -0
  15. package/dist/nodes/Accounting/handlers/CostCenterPropertiesResourceHandler.js +55 -0
  16. package/dist/nodes/Accounting/handlers/CostCentersUnitsResourceHandler.js +55 -0
  17. package/dist/nodes/Accounting/handlers/CostSequencesResourceHandler.js +88 -0
  18. package/dist/nodes/Accounting/handlers/CostSystemsResourceHandler.js +62 -0
  19. package/dist/nodes/Accounting/handlers/FiscalYearResourceHandler.js +49 -0
  20. package/dist/nodes/Accounting/handlers/GeneralLedgerAccountsResourceHandler.js +67 -0
  21. package/dist/nodes/Accounting/handlers/InternalCostServicesResourceHandler.js +40 -0
  22. package/dist/nodes/Accounting/handlers/PostingProposalsResourceHandler.js +98 -0
  23. package/dist/nodes/Accounting/handlers/StocktakingDataResourceHandler.js +57 -0
  24. package/dist/nodes/Accounting/handlers/TermsOfPaymentResourceHandler.js +69 -0
  25. package/dist/nodes/Accounting/handlers/VariousAddressesResourceHandler.js +56 -0
  26. package/dist/nodes/Accounting/handlers/index.js +45 -0
  27. package/dist/nodes/Accounting/types.js +5 -0
  28. package/dist/nodes/DocumentManagement/DocumentManagement.config.js +598 -0
  29. package/dist/nodes/DocumentManagement/DocumentManagement.node.js +96 -3513
  30. package/dist/nodes/DocumentManagement/handlers/BaseResourceHandler.js +121 -0
  31. package/dist/nodes/DocumentManagement/handlers/DocumentFileResourceHandler.js +126 -0
  32. package/dist/nodes/DocumentManagement/handlers/DocumentResourceHandler.js +184 -0
  33. package/dist/nodes/DocumentManagement/handlers/DocumentStateResourceHandler.js +58 -0
  34. package/dist/nodes/DocumentManagement/handlers/DomainResourceHandler.js +32 -0
  35. package/dist/nodes/DocumentManagement/handlers/IndividualPropertyResourceHandler.js +32 -0
  36. package/dist/nodes/DocumentManagement/handlers/IndividualReference1ResourceHandler.js +49 -0
  37. package/dist/nodes/DocumentManagement/handlers/IndividualReference2ResourceHandler.js +49 -0
  38. package/dist/nodes/DocumentManagement/handlers/InfoResourceHandler.js +30 -0
  39. package/dist/nodes/DocumentManagement/handlers/PropertyTemplateResourceHandler.js +34 -0
  40. package/dist/nodes/DocumentManagement/handlers/SecureAreaResourceHandler.js +32 -0
  41. package/dist/nodes/DocumentManagement/types.js +2 -0
  42. package/dist/nodes/DocumentManagement/utils.js +116 -0
  43. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.config.js +368 -0
  44. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.js +77 -2774
  45. package/dist/nodes/IdentityAndAccessManagement/handlers/BaseResourceHandler.js +87 -0
  46. package/dist/nodes/IdentityAndAccessManagement/handlers/CurrentUserResourceHandler.js +17 -0
  47. package/dist/nodes/IdentityAndAccessManagement/handlers/GroupResourceHandler.js +63 -0
  48. package/dist/nodes/IdentityAndAccessManagement/handlers/ResourceTypeResourceHandler.js +17 -0
  49. package/dist/nodes/IdentityAndAccessManagement/handlers/SchemaResourceHandler.js +30 -0
  50. package/dist/nodes/IdentityAndAccessManagement/handlers/ServiceProviderConfigResourceHandler.js +17 -0
  51. package/dist/nodes/IdentityAndAccessManagement/handlers/UserResourceHandler.js +73 -0
  52. package/dist/nodes/IdentityAndAccessManagement/types.js +2 -0
  53. package/dist/nodes/IdentityAndAccessManagement/utils.js +89 -0
  54. package/dist/nodes/MasterData/MasterData.config.js +902 -0
  55. package/dist/nodes/MasterData/MasterData.node.js +107 -3561
  56. package/dist/nodes/MasterData/handlers/AddresseeResourceHandler.js +98 -0
  57. package/dist/nodes/MasterData/handlers/AreaOfResponsibilityResourceHandler.js +42 -0
  58. package/dist/nodes/MasterData/handlers/BankResourceHandler.js +42 -0
  59. package/dist/nodes/MasterData/handlers/BaseResourceHandler.js +91 -0
  60. package/dist/nodes/MasterData/handlers/ClientCategoryTypeResourceHandler.js +78 -0
  61. package/dist/nodes/MasterData/handlers/ClientGroupTypeResourceHandler.js +78 -0
  62. package/dist/nodes/MasterData/handlers/ClientResourceHandler.js +183 -0
  63. package/dist/nodes/MasterData/handlers/CorporateStructureResourceHandler.js +68 -0
  64. package/dist/nodes/MasterData/handlers/CountryCodeResourceHandler.js +42 -0
  65. package/dist/nodes/MasterData/handlers/EmployeeResourceHandler.js +78 -0
  66. package/dist/nodes/MasterData/handlers/LegalFormResourceHandler.js +42 -0
  67. package/dist/nodes/MasterData/handlers/RelationshipResourceHandler.js +54 -0
  68. package/dist/nodes/MasterData/handlers/TaxAuthorityResourceHandler.js +42 -0
  69. package/dist/nodes/MasterData/types.js +2 -0
  70. package/dist/nodes/MasterData/utils.js +92 -0
  71. package/dist/src/services/accountingClient.js +766 -0
  72. package/dist/src/services/datevConnectClient.js +1809 -0
  73. package/dist/src/services/documentManagementClient.js +546 -0
  74. package/dist/src/services/identityAndAccessManagementClient.js +293 -0
  75. package/package.json +38 -39
  76. package/dist/nodes/Accounting/Accounting.node.json +0 -25
  77. package/dist/nodes/DocumentManagement/DocumentManagement.node.json +0 -25
  78. package/dist/nodes/IdentityAndAccessManagement/IdentityAndAccessManagement.node.json +0 -25
  79. package/dist/nodes/MasterData/MasterData.node.json +0 -25
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddresseeResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all addressee-related operations
9
+ */
10
+ class AddresseeResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ case "get":
20
+ response = await this.handleGet(authContext);
21
+ break;
22
+ case "create":
23
+ response = await this.handleCreate(authContext);
24
+ break;
25
+ case "update":
26
+ response = await this.handleUpdate(authContext);
27
+ break;
28
+ case "getDeletionLog":
29
+ response = await this.handleGetDeletionLog(authContext);
30
+ break;
31
+ default:
32
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "addressee".`, { itemIndex: this.itemIndex });
33
+ }
34
+ sendSuccess(response);
35
+ }
36
+ catch (error) {
37
+ this.handleError(error, returnData);
38
+ }
39
+ }
40
+ async handleGetAll(authContext) {
41
+ const top = this.getNumberParameter("top", 100);
42
+ const skip = this.getNumberParameter("skip", 0);
43
+ const select = this.getOptionalString("select");
44
+ const filter = this.getOptionalString("filter");
45
+ return await (0, datevConnectClient_1.fetchAddressees)({
46
+ ...authContext,
47
+ top,
48
+ skip,
49
+ select,
50
+ filter,
51
+ });
52
+ }
53
+ async handleGet(authContext) {
54
+ const addresseeId = this.getRequiredString("addresseeId");
55
+ const select = this.getOptionalString("select");
56
+ const expand = this.getOptionalString("expand");
57
+ return await (0, datevConnectClient_1.fetchAddressee)({
58
+ ...authContext,
59
+ addresseeId,
60
+ select,
61
+ expand,
62
+ });
63
+ }
64
+ async handleCreate(authContext) {
65
+ const rawAddressee = this.context.getNodeParameter("addresseeData", this.itemIndex);
66
+ const addresseePayload = this.parseJsonParameter(rawAddressee, "Addressee Data");
67
+ const nationalRight = this.getOptionalString("nationalRight");
68
+ return await (0, datevConnectClient_1.createAddressee)({
69
+ ...authContext,
70
+ addressee: addresseePayload,
71
+ nationalRight,
72
+ });
73
+ }
74
+ async handleUpdate(authContext) {
75
+ const addresseeId = this.getRequiredString("addresseeId");
76
+ const rawAddressee = this.context.getNodeParameter("addresseeData", this.itemIndex);
77
+ const addresseePayload = this.parseJsonParameter(rawAddressee, "Addressee Data");
78
+ return await (0, datevConnectClient_1.updateAddressee)({
79
+ ...authContext,
80
+ addresseeId,
81
+ addressee: addresseePayload,
82
+ });
83
+ }
84
+ async handleGetDeletionLog(authContext) {
85
+ const top = this.getNumberParameter("top", 100);
86
+ const skip = this.getNumberParameter("skip", 0);
87
+ const select = this.getOptionalString("select");
88
+ const filter = this.getOptionalString("filter");
89
+ return await (0, datevConnectClient_1.fetchAddresseesDeletionLog)({
90
+ ...authContext,
91
+ top,
92
+ skip,
93
+ select,
94
+ filter,
95
+ });
96
+ }
97
+ }
98
+ exports.AddresseeResourceHandler = AddresseeResourceHandler;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AreaOfResponsibilityResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all area of responsibility-related operations
9
+ */
10
+ class AreaOfResponsibilityResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ default:
20
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "areaOfResponsibility".`, { itemIndex: this.itemIndex });
21
+ }
22
+ sendSuccess(response);
23
+ }
24
+ catch (error) {
25
+ this.handleError(error, returnData);
26
+ }
27
+ }
28
+ async handleGetAll(authContext) {
29
+ const top = this.getNumberParameter("top", 100);
30
+ const skip = this.getNumberParameter("skip", 0);
31
+ const select = this.getOptionalString("select");
32
+ const filter = this.getOptionalString("filter");
33
+ return await (0, datevConnectClient_1.fetchAreaOfResponsibilities)({
34
+ ...authContext,
35
+ top,
36
+ skip,
37
+ select,
38
+ filter,
39
+ });
40
+ }
41
+ }
42
+ exports.AreaOfResponsibilityResourceHandler = AreaOfResponsibilityResourceHandler;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BankResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all bank-related operations
9
+ */
10
+ class BankResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ default:
20
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "bank".`, { itemIndex: this.itemIndex });
21
+ }
22
+ sendSuccess(response);
23
+ }
24
+ catch (error) {
25
+ this.handleError(error, returnData);
26
+ }
27
+ }
28
+ async handleGetAll(authContext) {
29
+ const top = this.getNumberParameter("top", 100);
30
+ const skip = this.getNumberParameter("skip", 0);
31
+ const select = this.getOptionalString("select");
32
+ const filter = this.getOptionalString("filter");
33
+ return await (0, datevConnectClient_1.fetchBanks)({
34
+ ...authContext,
35
+ top,
36
+ skip,
37
+ select,
38
+ filter,
39
+ });
40
+ }
41
+ }
42
+ exports.BankResourceHandler = BankResourceHandler;
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const utils_1 = require("../utils");
6
+ /**
7
+ * Abstract base class for resource handlers
8
+ * Provides common functionality for authentication, parameter parsing, and response handling
9
+ */
10
+ class BaseResourceHandler {
11
+ constructor(context, itemIndex) {
12
+ this.context = context;
13
+ this.itemIndex = itemIndex;
14
+ }
15
+ /**
16
+ * Gets DATEVconnect credentials and validates them
17
+ */
18
+ async getCredentials() {
19
+ const credentials = (await this.context.getCredentials("datevConnectApi"));
20
+ if (!credentials) {
21
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), "DATEVconnect credentials are missing");
22
+ }
23
+ const { host, email, password, clientInstanceId } = credentials;
24
+ if (!host || !email || !password || !clientInstanceId) {
25
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), "All DATEVconnect credential fields must be provided");
26
+ }
27
+ return credentials;
28
+ }
29
+ /**
30
+ * Creates an authentication context with token
31
+ */
32
+ createAuthContext(credentials, token) {
33
+ return {
34
+ host: credentials.host,
35
+ token,
36
+ clientInstanceId: credentials.clientInstanceId,
37
+ };
38
+ }
39
+ /**
40
+ * Gets an optional string parameter
41
+ */
42
+ getOptionalString(name) {
43
+ return (0, utils_1.getOptionalString)(this.context, name, this.itemIndex);
44
+ }
45
+ /**
46
+ * Gets a required string parameter
47
+ */
48
+ getRequiredString(name) {
49
+ return (0, utils_1.getRequiredString)(this.context, name, this.itemIndex);
50
+ }
51
+ /**
52
+ * Gets a number parameter with default value
53
+ */
54
+ getNumberParameter(name, defaultValue) {
55
+ return (0, utils_1.getNumberParameter)(this.context, name, this.itemIndex, defaultValue);
56
+ }
57
+ /**
58
+ * Parses a JSON parameter
59
+ */
60
+ parseJsonParameter(rawValue, parameterLabel) {
61
+ return (0, utils_1.parseJsonParameter)(rawValue, parameterLabel, this.context, this.itemIndex);
62
+ }
63
+ /**
64
+ * Creates a success response function that formats and adds data to returnData
65
+ */
66
+ createSendSuccess(returnData) {
67
+ return (payload) => {
68
+ const formattedItems = (0, utils_1.normaliseToObjects)(payload !== null && payload !== void 0 ? payload : { success: true });
69
+ const executionData = this.context.helpers.constructExecutionMetaData(this.context.helpers.returnJsonArray(formattedItems), { itemData: { item: this.itemIndex } });
70
+ returnData.push(...executionData);
71
+ };
72
+ }
73
+ /**
74
+ * Handles errors according to continueOnFail setting
75
+ */
76
+ handleError(error, returnData) {
77
+ if (this.context.continueOnFail()) {
78
+ returnData.push({
79
+ json: {
80
+ error: (0, utils_1.toErrorMessage)(error),
81
+ },
82
+ pairedItem: { item: this.itemIndex },
83
+ });
84
+ return;
85
+ }
86
+ throw new n8n_workflow_1.NodeApiError(this.context.getNode(), (0, utils_1.toErrorObject)(error), {
87
+ itemIndex: this.itemIndex,
88
+ });
89
+ }
90
+ }
91
+ exports.BaseResourceHandler = BaseResourceHandler;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientCategoryTypeResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all client category type-related operations
9
+ */
10
+ class ClientCategoryTypeResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ case "get":
20
+ response = await this.handleGet(authContext);
21
+ break;
22
+ case "create":
23
+ response = await this.handleCreate(authContext);
24
+ break;
25
+ case "update":
26
+ response = await this.handleUpdate(authContext);
27
+ break;
28
+ default:
29
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "clientCategoryType".`, { itemIndex: this.itemIndex });
30
+ }
31
+ sendSuccess(response);
32
+ }
33
+ catch (error) {
34
+ this.handleError(error, returnData);
35
+ }
36
+ }
37
+ async handleGetAll(authContext) {
38
+ const top = this.getNumberParameter("top", 100);
39
+ const skip = this.getNumberParameter("skip", 0);
40
+ const select = this.getOptionalString("select");
41
+ const filter = this.getOptionalString("filter");
42
+ return await (0, datevConnectClient_1.fetchClientCategoryTypes)({
43
+ ...authContext,
44
+ top,
45
+ skip,
46
+ select,
47
+ filter,
48
+ });
49
+ }
50
+ async handleGet(authContext) {
51
+ const clientCategoryTypeId = this.getRequiredString("clientCategoryTypeId");
52
+ const select = this.getOptionalString("select");
53
+ return await (0, datevConnectClient_1.fetchClientCategoryType)({
54
+ ...authContext,
55
+ clientCategoryTypeId,
56
+ select,
57
+ });
58
+ }
59
+ async handleCreate(authContext) {
60
+ const rawClientCategoryType = this.context.getNodeParameter("clientCategoryTypeData", this.itemIndex);
61
+ const clientCategoryTypePayload = this.parseJsonParameter(rawClientCategoryType, "Client Category Type Data");
62
+ return await (0, datevConnectClient_1.createClientCategoryType)({
63
+ ...authContext,
64
+ clientCategoryType: clientCategoryTypePayload,
65
+ });
66
+ }
67
+ async handleUpdate(authContext) {
68
+ const clientCategoryTypeId = this.getRequiredString("clientCategoryTypeId");
69
+ const rawClientCategoryType = this.context.getNodeParameter("clientCategoryTypeData", this.itemIndex);
70
+ const clientCategoryTypePayload = this.parseJsonParameter(rawClientCategoryType, "Client Category Type Data");
71
+ return await (0, datevConnectClient_1.updateClientCategoryType)({
72
+ ...authContext,
73
+ clientCategoryTypeId,
74
+ clientCategoryType: clientCategoryTypePayload,
75
+ });
76
+ }
77
+ }
78
+ exports.ClientCategoryTypeResourceHandler = ClientCategoryTypeResourceHandler;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientGroupTypeResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all client group type-related operations
9
+ */
10
+ class ClientGroupTypeResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ case "get":
20
+ response = await this.handleGet(authContext);
21
+ break;
22
+ case "create":
23
+ response = await this.handleCreate(authContext);
24
+ break;
25
+ case "update":
26
+ response = await this.handleUpdate(authContext);
27
+ break;
28
+ default:
29
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "clientGroupType".`, { itemIndex: this.itemIndex });
30
+ }
31
+ sendSuccess(response);
32
+ }
33
+ catch (error) {
34
+ this.handleError(error, returnData);
35
+ }
36
+ }
37
+ async handleGetAll(authContext) {
38
+ const top = this.getNumberParameter("top", 100);
39
+ const skip = this.getNumberParameter("skip", 0);
40
+ const select = this.getOptionalString("select");
41
+ const filter = this.getOptionalString("filter");
42
+ return await (0, datevConnectClient_1.fetchClientGroupTypes)({
43
+ ...authContext,
44
+ top,
45
+ skip,
46
+ select,
47
+ filter,
48
+ });
49
+ }
50
+ async handleGet(authContext) {
51
+ const clientGroupTypeId = this.getRequiredString("clientGroupTypeId");
52
+ const select = this.getOptionalString("select");
53
+ return await (0, datevConnectClient_1.fetchClientGroupType)({
54
+ ...authContext,
55
+ clientGroupTypeId,
56
+ select,
57
+ });
58
+ }
59
+ async handleCreate(authContext) {
60
+ const rawClientGroupType = this.context.getNodeParameter("clientGroupTypeData", this.itemIndex);
61
+ const clientGroupTypePayload = this.parseJsonParameter(rawClientGroupType, "Client Group Type Data");
62
+ return await (0, datevConnectClient_1.createClientGroupType)({
63
+ ...authContext,
64
+ clientGroupType: clientGroupTypePayload,
65
+ });
66
+ }
67
+ async handleUpdate(authContext) {
68
+ const clientGroupTypeId = this.getRequiredString("clientGroupTypeId");
69
+ const rawClientGroupType = this.context.getNodeParameter("clientGroupTypeData", this.itemIndex);
70
+ const clientGroupTypePayload = this.parseJsonParameter(rawClientGroupType, "Client Group Type Data");
71
+ return await (0, datevConnectClient_1.updateClientGroupType)({
72
+ ...authContext,
73
+ clientGroupTypeId,
74
+ clientGroupType: clientGroupTypePayload,
75
+ });
76
+ }
77
+ }
78
+ exports.ClientGroupTypeResourceHandler = ClientGroupTypeResourceHandler;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all client-related operations
9
+ */
10
+ class ClientResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ case "get":
20
+ response = await this.handleGet(authContext);
21
+ break;
22
+ case "create":
23
+ response = await this.handleCreate(authContext);
24
+ break;
25
+ case "update":
26
+ response = await this.handleUpdate(authContext);
27
+ break;
28
+ case "getResponsibilities":
29
+ response = await this.handleGetResponsibilities(authContext);
30
+ break;
31
+ case "updateResponsibilities":
32
+ response = await this.handleUpdateResponsibilities(authContext);
33
+ break;
34
+ case "getClientCategories":
35
+ response = await this.handleGetClientCategories(authContext);
36
+ break;
37
+ case "updateClientCategories":
38
+ response = await this.handleUpdateClientCategories(authContext);
39
+ break;
40
+ case "getClientGroups":
41
+ response = await this.handleGetClientGroups(authContext);
42
+ break;
43
+ case "updateClientGroups":
44
+ response = await this.handleUpdateClientGroups(authContext);
45
+ break;
46
+ case "getDeletionLog":
47
+ response = await this.handleGetDeletionLog(authContext);
48
+ break;
49
+ case "getNextFreeNumber":
50
+ response = await this.handleGetNextFreeNumber(authContext);
51
+ break;
52
+ default:
53
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "client".`, { itemIndex: this.itemIndex });
54
+ }
55
+ sendSuccess(response);
56
+ }
57
+ catch (error) {
58
+ this.handleError(error, returnData);
59
+ }
60
+ }
61
+ async handleGetAll(authContext) {
62
+ const top = this.getNumberParameter("top", 100);
63
+ const skip = this.getNumberParameter("skip", 0);
64
+ const select = this.getOptionalString("select");
65
+ const filter = this.getOptionalString("filter");
66
+ return await (0, datevConnectClient_1.fetchClients)({
67
+ ...authContext,
68
+ top,
69
+ skip,
70
+ select,
71
+ filter,
72
+ });
73
+ }
74
+ async handleGet(authContext) {
75
+ const clientId = this.getRequiredString("clientId");
76
+ const select = this.getOptionalString("select");
77
+ return await (0, datevConnectClient_1.fetchClient)({
78
+ ...authContext,
79
+ clientId,
80
+ select,
81
+ });
82
+ }
83
+ async handleCreate(authContext) {
84
+ const rawClient = this.context.getNodeParameter("clientData", this.itemIndex);
85
+ const clientPayload = this.parseJsonParameter(rawClient, "Client Data");
86
+ const maxNumber = this.getNumberParameter("maxNumber", 0);
87
+ return await (0, datevConnectClient_1.createClient)({
88
+ ...authContext,
89
+ client: clientPayload,
90
+ maxNumber: typeof maxNumber === "number" && maxNumber > 0 ? maxNumber : undefined,
91
+ });
92
+ }
93
+ async handleUpdate(authContext) {
94
+ const clientId = this.getRequiredString("clientId");
95
+ const rawClient = this.context.getNodeParameter("clientData", this.itemIndex);
96
+ const clientPayload = this.parseJsonParameter(rawClient, "Client Data");
97
+ return await (0, datevConnectClient_1.updateClient)({
98
+ ...authContext,
99
+ clientId,
100
+ client: clientPayload,
101
+ });
102
+ }
103
+ async handleGetResponsibilities(authContext) {
104
+ const clientId = this.getRequiredString("clientId");
105
+ const select = this.getOptionalString("select");
106
+ return await (0, datevConnectClient_1.fetchClientResponsibilities)({
107
+ ...authContext,
108
+ clientId,
109
+ select,
110
+ });
111
+ }
112
+ async handleUpdateResponsibilities(authContext) {
113
+ const clientId = this.getRequiredString("clientId");
114
+ const rawResponsibilities = this.context.getNodeParameter("responsibilitiesData", this.itemIndex);
115
+ const responsibilitiesPayload = this.parseJsonParameter(rawResponsibilities, "Responsibilities");
116
+ return await (0, datevConnectClient_1.updateClientResponsibilities)({
117
+ ...authContext,
118
+ clientId,
119
+ responsibilities: responsibilitiesPayload,
120
+ });
121
+ }
122
+ async handleGetClientCategories(authContext) {
123
+ const clientId = this.getRequiredString("clientId");
124
+ const select = this.getOptionalString("select");
125
+ return await (0, datevConnectClient_1.fetchClientCategories)({
126
+ ...authContext,
127
+ clientId,
128
+ select,
129
+ });
130
+ }
131
+ async handleUpdateClientCategories(authContext) {
132
+ const clientId = this.getRequiredString("clientId");
133
+ const rawCategories = this.context.getNodeParameter("categoriesData", this.itemIndex);
134
+ const categoriesPayload = this.parseJsonParameter(rawCategories, "Client Categories");
135
+ return await (0, datevConnectClient_1.updateClientCategories)({
136
+ ...authContext,
137
+ clientId,
138
+ categories: categoriesPayload,
139
+ });
140
+ }
141
+ async handleGetClientGroups(authContext) {
142
+ const clientId = this.getRequiredString("clientId");
143
+ const select = this.getOptionalString("select");
144
+ return await (0, datevConnectClient_1.fetchClientGroups)({
145
+ ...authContext,
146
+ clientId,
147
+ select,
148
+ });
149
+ }
150
+ async handleUpdateClientGroups(authContext) {
151
+ const clientId = this.getRequiredString("clientId");
152
+ const rawGroups = this.context.getNodeParameter("groupsData", this.itemIndex);
153
+ const groupsPayload = this.parseJsonParameter(rawGroups, "Client Groups");
154
+ return await (0, datevConnectClient_1.updateClientGroups)({
155
+ ...authContext,
156
+ clientId,
157
+ groups: groupsPayload,
158
+ });
159
+ }
160
+ async handleGetDeletionLog(authContext) {
161
+ const top = this.getNumberParameter("top", 100);
162
+ const skip = this.getNumberParameter("skip", 0);
163
+ const select = this.getOptionalString("select");
164
+ const filter = this.getOptionalString("filter");
165
+ return await (0, datevConnectClient_1.fetchClientDeletionLog)({
166
+ ...authContext,
167
+ top,
168
+ skip,
169
+ select,
170
+ filter,
171
+ });
172
+ }
173
+ async handleGetNextFreeNumber(authContext) {
174
+ const start = this.getNumberParameter("start", 1);
175
+ const range = this.getNumberParameter("range", 0);
176
+ return await (0, datevConnectClient_1.fetchNextFreeClientNumber)({
177
+ ...authContext,
178
+ start,
179
+ range: typeof range === "number" && range > 0 ? range : undefined,
180
+ });
181
+ }
182
+ }
183
+ exports.ClientResourceHandler = ClientResourceHandler;
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CorporateStructureResourceHandler = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const datevConnectClient_1 = require("../../../src/services/datevConnectClient");
6
+ const BaseResourceHandler_1 = require("./BaseResourceHandler");
7
+ /**
8
+ * Handler for all corporate structure-related operations
9
+ */
10
+ class CorporateStructureResourceHandler extends BaseResourceHandler_1.BaseResourceHandler {
11
+ async execute(operation, authContext, returnData) {
12
+ const sendSuccess = this.createSendSuccess(returnData);
13
+ try {
14
+ let response;
15
+ switch (operation) {
16
+ case "getAll":
17
+ response = await this.handleGetAll(authContext);
18
+ break;
19
+ case "get":
20
+ response = await this.handleGet(authContext);
21
+ break;
22
+ case "getEstablishment":
23
+ response = await this.handleGetEstablishment(authContext);
24
+ break;
25
+ default:
26
+ throw new n8n_workflow_1.NodeOperationError(this.context.getNode(), `The operation "${operation}" is not supported for resource "corporateStructure".`, { itemIndex: this.itemIndex });
27
+ }
28
+ sendSuccess(response);
29
+ }
30
+ catch (error) {
31
+ this.handleError(error, returnData);
32
+ }
33
+ }
34
+ async handleGetAll(authContext) {
35
+ const top = this.getNumberParameter("top", 100);
36
+ const skip = this.getNumberParameter("skip", 0);
37
+ const select = this.getOptionalString("select");
38
+ const filter = this.getOptionalString("filter");
39
+ return await (0, datevConnectClient_1.fetchCorporateStructures)({
40
+ ...authContext,
41
+ top,
42
+ skip,
43
+ select,
44
+ filter,
45
+ });
46
+ }
47
+ async handleGet(authContext) {
48
+ const organizationId = this.getRequiredString("organizationId");
49
+ const select = this.getOptionalString("select");
50
+ return await (0, datevConnectClient_1.fetchCorporateStructure)({
51
+ ...authContext,
52
+ organizationId,
53
+ select,
54
+ });
55
+ }
56
+ async handleGetEstablishment(authContext) {
57
+ const organizationId = this.getRequiredString("organizationId");
58
+ const establishmentId = this.getRequiredString("establishmentId");
59
+ const select = this.getOptionalString("select");
60
+ return await (0, datevConnectClient_1.fetchEstablishment)({
61
+ ...authContext,
62
+ organizationId,
63
+ establishmentId,
64
+ select,
65
+ });
66
+ }
67
+ }
68
+ exports.CorporateStructureResourceHandler = CorporateStructureResourceHandler;