n8n-nodes-peak 0.1.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 (42) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +127 -0
  3. package/dist/assets/PEAK.svg +13 -0
  4. package/dist/credentials/PEAKApi.credentials.d.ts +7 -0
  5. package/dist/credentials/PEAKApi.credentials.js +40 -0
  6. package/dist/credentials/PEAKApi.credentials.js.map +1 -0
  7. package/dist/helpers/time.d.ts +2 -0
  8. package/dist/helpers/time.js +23 -0
  9. package/dist/helpers/time.js.map +1 -0
  10. package/dist/nodes/Contact/GetContact.node.d.ts +5 -0
  11. package/dist/nodes/Contact/GetContact.node.js +145 -0
  12. package/dist/nodes/Contact/GetContact.node.js.map +1 -0
  13. package/dist/nodes/DailyJournal/CreateDailyJournal.node.d.ts +5 -0
  14. package/dist/nodes/DailyJournal/CreateDailyJournal.node.js +139 -0
  15. package/dist/nodes/DailyJournal/CreateDailyJournal.node.js.map +1 -0
  16. package/dist/nodes/DailyJournal/GetAccountCode.node.d.ts +5 -0
  17. package/dist/nodes/DailyJournal/GetAccountCode.node.js +118 -0
  18. package/dist/nodes/DailyJournal/GetAccountCode.node.js.map +1 -0
  19. package/dist/nodes/Invoice/CreateExpense.node.d.ts +5 -0
  20. package/dist/nodes/Invoice/CreateExpense.node.js +139 -0
  21. package/dist/nodes/Invoice/CreateExpense.node.js.map +1 -0
  22. package/dist/nodes/Invoice/CreateInvoice.node.d.ts +5 -0
  23. package/dist/nodes/Invoice/CreateInvoice.node.js +140 -0
  24. package/dist/nodes/Invoice/CreateInvoice.node.js.map +1 -0
  25. package/dist/nodes/Invoice/CreateInvoice.node.json +13 -0
  26. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.d.ts +5 -0
  27. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.js +145 -0
  28. package/dist/nodes/PaymentMethod/GetPaymentMethod.node.js.map +1 -0
  29. package/dist/nodes/Product/GetProduct.node.d.ts +5 -0
  30. package/dist/nodes/Product/GetProduct.node.js +146 -0
  31. package/dist/nodes/Product/GetProduct.node.js.map +1 -0
  32. package/dist/nodes/Product/GetService.node.d.ts +5 -0
  33. package/dist/nodes/Product/GetService.node.js +145 -0
  34. package/dist/nodes/Product/GetService.node.js.map +1 -0
  35. package/dist/nodes/Receipt/CreateReceipt.node.d.ts +5 -0
  36. package/dist/nodes/Receipt/CreateReceipt.node.js +139 -0
  37. package/dist/nodes/Receipt/CreateReceipt.node.js.map +1 -0
  38. package/dist/nodes/Receipt/CreateReceipt.node.json +13 -0
  39. package/dist/package.json +73 -0
  40. package/dist/tsconfig.tsbuildinfo +1 -0
  41. package/index.js +0 -0
  42. package/package.json +73 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAccountCode = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class GetAccountCode {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'Get Account Code',
10
+ name: 'getAccountCode',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['input'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send parameter to get account code via PEAK API',
16
+ defaults: {
17
+ name: 'Get AccountCode',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'AccountCode ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'AccountCodeion',
39
+ value: 'accountCodeion',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'Client Token (override)',
45
+ name: 'clientTokenOverride',
46
+ type: 'string',
47
+ typeOptions: { password: true },
48
+ default: '',
49
+ description: 'Optional override (useful when token refreshes every 24h)',
50
+ },
51
+ ],
52
+ };
53
+ }
54
+ async execute() {
55
+ const items = this.getInputData();
56
+ const returnData = [];
57
+ const creds = (await this.getCredentials('PEAKApi'));
58
+ const userToken = creds.userToken;
59
+ const connectId = creds.connectId;
60
+ const endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/dailyjournals/accountcode';
61
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
62
+ try {
63
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
64
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
65
+ if (serverEnv === 'production') {
66
+ endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
67
+ }
68
+ const clientToken = clientTokenOverride || creds.clientToken;
69
+ if (!clientToken)
70
+ throw new Error('Client Token is required (credentials or override).');
71
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
72
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
73
+ const headers = {
74
+ 'User-Token': userToken,
75
+ 'Client-Token': clientToken,
76
+ 'Time-Stamp': timeStamp,
77
+ 'Time-Signature': timeSignature,
78
+ 'Content-Type': 'application/json',
79
+ };
80
+ const options = {
81
+ method: 'GET',
82
+ url: endpointUrl,
83
+ headers,
84
+ json: true,
85
+ };
86
+ const response = await this.helpers.request(options);
87
+ returnData.push({
88
+ json: {
89
+ success: true,
90
+ statusCode: 200,
91
+ data: response,
92
+ headers,
93
+ },
94
+ });
95
+ }
96
+ catch (error) {
97
+ if (this.continueOnFail()) {
98
+ returnData.push({
99
+ json: { error: error.message },
100
+ pairedItem: { item: itemIndex },
101
+ });
102
+ }
103
+ else {
104
+ if (error.context) {
105
+ error.context.itemIndex = itemIndex;
106
+ throw error;
107
+ }
108
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
109
+ itemIndex,
110
+ });
111
+ }
112
+ }
113
+ }
114
+ return [returnData];
115
+ }
116
+ }
117
+ exports.GetAccountCode = GetAccountCode;
118
+ //# sourceMappingURL=GetAccountCode.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetAccountCode.node.js","sourceRoot":"","sources":["../../../nodes/DailyJournal/GetAccountCode.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class CreateExpense implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateExpense = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class CreateExpense {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'Create Expense',
10
+ name: 'createExpense',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['output'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send JSON payload to create expense via PEAK API',
16
+ defaults: {
17
+ name: 'Create Expense',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'Product ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'JSON Body',
45
+ name: 'jsonBody',
46
+ type: 'string',
47
+ typeOptions: { rows: 10 },
48
+ default: '{\n "merchantId": "241027",\n "issueDate": "2025-10-16",\n "items": []\n}',
49
+ required: true,
50
+ description: 'Raw JSON payload (you can map from previous node with {{$json}})',
51
+ },
52
+ {
53
+ displayName: 'Client Token (override)',
54
+ name: 'clientTokenOverride',
55
+ type: 'string',
56
+ typeOptions: { password: true },
57
+ default: '',
58
+ description: 'Optional override (useful when token refreshes every 24h)',
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ async execute() {
64
+ const items = this.getInputData();
65
+ const returnData = [];
66
+ const creds = (await this.getCredentials('PEAKApi'));
67
+ const userToken = creds.userToken;
68
+ const connectId = creds.connectId;
69
+ const endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/expenses';
70
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
71
+ try {
72
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
73
+ const jsonBodyStr = this.getNodeParameter('jsonBody', itemIndex);
74
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
75
+ if (serverEnv === 'production') {
76
+ endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
77
+ }
78
+ const clientToken = clientTokenOverride || creds.clientToken;
79
+ if (!clientToken)
80
+ throw new Error('Client Token is required (credentials or override).');
81
+ let bodyObj;
82
+ try {
83
+ bodyObj = JSON.parse(jsonBodyStr);
84
+ if (typeof bodyObj !== 'object' || bodyObj === null) {
85
+ throw new Error('JSON Body must be an object.');
86
+ }
87
+ }
88
+ catch {
89
+ throw new Error('Invalid JSON Body.');
90
+ }
91
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
92
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
93
+ const headers = {
94
+ 'User-Token': userToken,
95
+ 'Client-Token': clientToken,
96
+ 'Time-Stamp': timeStamp,
97
+ 'Time-Signature': timeSignature,
98
+ 'Content-Type': 'application/json',
99
+ };
100
+ const options = {
101
+ method: 'POST',
102
+ url: endpointUrl,
103
+ headers,
104
+ body: bodyObj,
105
+ json: true,
106
+ };
107
+ const response = await this.helpers.request(options);
108
+ returnData.push({
109
+ json: {
110
+ success: true,
111
+ statusCode: 200,
112
+ data: response,
113
+ headers,
114
+ },
115
+ });
116
+ }
117
+ catch (error) {
118
+ if (this.continueOnFail()) {
119
+ returnData.push({
120
+ json: { error: error.message },
121
+ pairedItem: { item: itemIndex },
122
+ });
123
+ }
124
+ else {
125
+ if (error.context) {
126
+ error.context.itemIndex = itemIndex;
127
+ throw error;
128
+ }
129
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
130
+ itemIndex,
131
+ });
132
+ }
133
+ }
134
+ }
135
+ return [returnData];
136
+ }
137
+ }
138
+ exports.CreateExpense = CreateExpense;
139
+ //# sourceMappingURL=CreateExpense.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateExpense.node.js","sourceRoot":"","sources":["../../../nodes/Invoice/CreateExpense.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class CreateInvoice implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateInvoice = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class CreateInvoice {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'Create Invoice',
10
+ name: 'createInvoice',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['output'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send JSON payload to create invoice via PEAK API',
16
+ defaults: {
17
+ name: 'Create Invoice',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'Product ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'Production',
39
+ value: 'production',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'JSON Body',
45
+ name: 'jsonBody',
46
+ type: 'string',
47
+ typeOptions: { rows: 10 },
48
+ default: '{\n "merchantId": "241027",\n "issueDate": "2025-10-16",\n "items": []\n}',
49
+ required: true,
50
+ description: 'Raw JSON payload (you can map from previous node with {{$json}})',
51
+ },
52
+ {
53
+ displayName: 'Client Token (override)',
54
+ name: 'clientTokenOverride',
55
+ type: 'string',
56
+ typeOptions: { password: true },
57
+ default: '',
58
+ description: 'Optional override (useful when token refreshes every 24h)',
59
+ },
60
+ ],
61
+ };
62
+ }
63
+ async execute() {
64
+ const items = this.getInputData();
65
+ const returnData = [];
66
+ const creds = (await this.getCredentials('PEAKApi'));
67
+ const userToken = creds.userToken;
68
+ const connectId = creds.connectId;
69
+ const endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/invoices';
70
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
71
+ try {
72
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
73
+ const jsonBodyStr = this.getNodeParameter('jsonBody', itemIndex);
74
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
75
+ if (serverEnv === 'production') {
76
+ endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
77
+ }
78
+ const clientToken = clientTokenOverride || creds.clientToken;
79
+ if (!clientToken)
80
+ throw new Error('Client Token is required (credentials or override).');
81
+ let bodyObj;
82
+ try {
83
+ bodyObj = JSON.parse(jsonBodyStr);
84
+ if (typeof bodyObj !== 'object' || bodyObj === null) {
85
+ throw new Error('JSON Body must be an object.');
86
+ }
87
+ }
88
+ catch {
89
+ throw new Error('Invalid JSON Body.');
90
+ }
91
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
92
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
93
+ const headers = {
94
+ 'User-Token': userToken,
95
+ 'Client-Token': clientToken,
96
+ 'Time-Stamp': timeStamp,
97
+ 'Time-Signature': timeSignature,
98
+ 'Content-Type': 'application/json',
99
+ 'x-peak-integrator': 'n8n',
100
+ };
101
+ const options = {
102
+ method: 'POST',
103
+ url: endpointUrl,
104
+ headers,
105
+ body: bodyObj,
106
+ json: true,
107
+ };
108
+ const response = await this.helpers.request(options);
109
+ returnData.push({
110
+ json: {
111
+ success: true,
112
+ statusCode: 200,
113
+ data: response,
114
+ headers,
115
+ },
116
+ });
117
+ }
118
+ catch (error) {
119
+ if (this.continueOnFail()) {
120
+ returnData.push({
121
+ json: { error: error.message },
122
+ pairedItem: { item: itemIndex },
123
+ });
124
+ }
125
+ else {
126
+ if (error.context) {
127
+ error.context.itemIndex = itemIndex;
128
+ throw error;
129
+ }
130
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
131
+ itemIndex,
132
+ });
133
+ }
134
+ }
135
+ }
136
+ return [returnData];
137
+ }
138
+ }
139
+ exports.CreateInvoice = CreateInvoice;
140
+ //# sourceMappingURL=CreateInvoice.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateInvoice.node.js","sourceRoot":"","sources":["../../../nodes/Invoice/CreateInvoice.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ {
2
+ "nodeClassDescription": {
3
+ "displayName": "Create Invoice",
4
+ "name": "createInvoice",
5
+ "icon": "file:../../assets/PEAK.svg",
6
+ "codex": {
7
+ "categories": ["PEAK"],
8
+ "subcategories": {
9
+ "PEAK": ["Document Actions"]
10
+ }
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class GetPaymentMethod implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetPaymentMethod = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const time_1 = require("../../helpers/time");
6
+ class GetPaymentMethod {
7
+ constructor() {
8
+ this.description = {
9
+ displayName: 'Get Payment Method',
10
+ name: 'getPaymentMethod',
11
+ icon: 'file:../../assets/PEAK.svg',
12
+ group: ['input'],
13
+ version: 1,
14
+ subtitle: '={{$parameter["operation"]}}',
15
+ description: 'Send parameter to get payment method via PEAK API',
16
+ defaults: {
17
+ name: 'Get PaymentMethod',
18
+ },
19
+ inputs: ['main'],
20
+ outputs: ['main'],
21
+ credentials: [{ name: 'PEAKApi', required: true }],
22
+ usableAsTool: true,
23
+ properties: [
24
+ {
25
+ displayName: 'Server Environment',
26
+ name: 'serverEnvironment',
27
+ type: 'options',
28
+ typeOptions: { rows: 1 },
29
+ default: 'production',
30
+ required: true,
31
+ description: 'PaymentMethod ID to retrieve',
32
+ options: [
33
+ {
34
+ name: 'UAT',
35
+ value: 'uat',
36
+ },
37
+ {
38
+ name: 'PaymentMethodion',
39
+ value: 'paymentMethodion',
40
+ },
41
+ ],
42
+ },
43
+ {
44
+ displayName: 'PaymentMethod ID',
45
+ name: 'paymentMethodId',
46
+ type: 'string',
47
+ typeOptions: { rows: 1 },
48
+ default: '',
49
+ required: false,
50
+ description: 'PaymentMethod ID to retrieve',
51
+ },
52
+ {
53
+ displayName: 'PaymentMethod Code',
54
+ name: 'paymentMethodCode',
55
+ type: 'string',
56
+ typeOptions: { rows: 1 },
57
+ default: '',
58
+ required: false,
59
+ description: 'PaymentMethod code to retrieve',
60
+ },
61
+ {
62
+ displayName: 'Client Token (override)',
63
+ name: 'clientTokenOverride',
64
+ type: 'string',
65
+ typeOptions: { password: true },
66
+ default: '',
67
+ description: 'Optional override (useful when token refreshes every 24h)',
68
+ },
69
+ ],
70
+ };
71
+ }
72
+ async execute() {
73
+ const items = this.getInputData();
74
+ const returnData = [];
75
+ const creds = (await this.getCredentials('PEAKApi'));
76
+ const userToken = creds.userToken;
77
+ const connectId = creds.connectId;
78
+ const endpointUrl = 'https://peakengineapidev.azurewebsites.net/api/v1/paymentMethods';
79
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
80
+ try {
81
+ const serverEnv = this.getNodeParameter('serverEnvironment', itemIndex, '');
82
+ const paymentMethodId = this.getNodeParameter('paymentMethodId', itemIndex, '');
83
+ const paymentMethodCode = this.getNodeParameter('paymentMethodCode', itemIndex, '');
84
+ const clientTokenOverride = this.getNodeParameter('clientTokenOverride', itemIndex, '');
85
+ if (serverEnv === 'production') {
86
+ endpointUrl.replace('peakengineapidev.azurewebsites.net', 'api.peakaccount.com');
87
+ }
88
+ let endpointWithParams = endpointUrl + '?';
89
+ const clientToken = clientTokenOverride || creds.clientToken;
90
+ if (!clientToken)
91
+ throw new Error('Client Token is required (credentials or override).');
92
+ if (paymentMethodId !== '') {
93
+ endpointWithParams += `id=${encodeURIComponent(paymentMethodId)}`;
94
+ }
95
+ if (paymentMethodCode !== '') {
96
+ endpointWithParams += `code=${encodeURIComponent(paymentMethodCode)}`;
97
+ }
98
+ const timeStamp = (0, time_1.formatTimestamp)(new Date(), false);
99
+ const timeSignature = (0, time_1.hmacSha1Hex)(connectId, timeStamp);
100
+ const headers = {
101
+ 'User-Token': userToken,
102
+ 'Client-Token': clientToken,
103
+ 'Time-Stamp': timeStamp,
104
+ 'Time-Signature': timeSignature,
105
+ 'Content-Type': 'application/json',
106
+ };
107
+ const options = {
108
+ method: 'GET',
109
+ url: endpointWithParams,
110
+ headers,
111
+ json: true,
112
+ };
113
+ const response = await this.helpers.request(options);
114
+ returnData.push({
115
+ json: {
116
+ success: true,
117
+ statusCode: 200,
118
+ data: response,
119
+ headers,
120
+ },
121
+ });
122
+ }
123
+ catch (error) {
124
+ if (this.continueOnFail()) {
125
+ returnData.push({
126
+ json: { error: error.message },
127
+ pairedItem: { item: itemIndex },
128
+ });
129
+ }
130
+ else {
131
+ if (error.context) {
132
+ error.context.itemIndex = itemIndex;
133
+ throw error;
134
+ }
135
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), error, {
136
+ itemIndex,
137
+ });
138
+ }
139
+ }
140
+ }
141
+ return [returnData];
142
+ }
143
+ }
144
+ exports.GetPaymentMethod = GetPaymentMethod;
145
+ //# sourceMappingURL=GetPaymentMethod.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GetPaymentMethod.node.js","sourceRoot":"","sources":["../../../nodes/PaymentMethod/GetPaymentMethod.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class GetProduct implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }