n8n-nodes-pinch 0.2.2 → 0.2.5

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 (32) hide show
  1. package/README.md +72 -8
  2. package/package.json +1 -1
  3. package/dist/credentials/PinchApi.credentials.d.ts +0 -16
  4. package/dist/credentials/PinchApi.credentials.js +0 -124
  5. package/dist/credentials/PinchApi.credentials.js.map +0 -1
  6. package/dist/nodes/Pinch/Pinch.node.d.ts +0 -5
  7. package/dist/nodes/Pinch/Pinch.node.js +0 -155
  8. package/dist/nodes/Pinch/Pinch.node.js.map +0 -1
  9. package/dist/nodes/Pinch/PinchTrigger.node.d.ts +0 -12
  10. package/dist/nodes/Pinch/PinchTrigger.node.js +0 -215
  11. package/dist/nodes/Pinch/PinchTrigger.node.js.map +0 -1
  12. package/dist/nodes/Pinch/descriptions/PayerDescription.d.ts +0 -3
  13. package/dist/nodes/Pinch/descriptions/PayerDescription.js +0 -102
  14. package/dist/nodes/Pinch/descriptions/PayerDescription.js.map +0 -1
  15. package/dist/nodes/Pinch/descriptions/PaymentDescription.d.ts +0 -3
  16. package/dist/nodes/Pinch/descriptions/PaymentDescription.js +0 -62
  17. package/dist/nodes/Pinch/descriptions/PaymentDescription.js.map +0 -1
  18. package/dist/nodes/Pinch/descriptions/PaymentLinkDescription.d.ts +0 -3
  19. package/dist/nodes/Pinch/descriptions/PaymentLinkDescription.js +0 -203
  20. package/dist/nodes/Pinch/descriptions/PaymentLinkDescription.js.map +0 -1
  21. package/dist/nodes/Pinch/descriptions/TokenDescription.d.ts +0 -3
  22. package/dist/nodes/Pinch/descriptions/TokenDescription.js +0 -171
  23. package/dist/nodes/Pinch/descriptions/TokenDescription.js.map +0 -1
  24. package/dist/nodes/Pinch/descriptions/index.d.ts +0 -4
  25. package/dist/nodes/Pinch/descriptions/index.js +0 -21
  26. package/dist/nodes/Pinch/descriptions/index.js.map +0 -1
  27. package/dist/nodes/Pinch/helpers.d.ts +0 -2
  28. package/dist/nodes/Pinch/helpers.js +0 -27
  29. package/dist/nodes/Pinch/helpers.js.map +0 -1
  30. package/dist/nodes/Pinch/pinchNode.svg +0 -30
  31. package/dist/package.json +0 -53
  32. package/dist/tsconfig.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -8,11 +8,11 @@ Pinch Payments is a PCI Compliant, Australian payments platform offering automat
8
8
 
9
9
  [Installation](#installation)
10
10
  [Operations](#operations)
11
- [Credentials](#credentials) <!-- delete if no auth needed -->
11
+ [Credentials](#credentials)
12
12
  [Compatibility](#compatibility)
13
- [Usage](#usage) <!-- delete if not using this section -->
13
+ [Usage](#usage)
14
14
  [Resources](#resources)
15
- [Version history](#version-history) <!-- delete if not using this section -->
15
+ [Version history](#version-history)
16
16
 
17
17
  ## Installation
18
18
 
@@ -22,7 +22,58 @@ Use the package at `n8n-nodes-pinch`.
22
22
 
23
23
  ## Operations
24
24
 
25
- _None yet but the credentials can be used to make Rest API calls_
25
+ This package includes two nodes:
26
+
27
+ ### Pinch Node
28
+
29
+ The main action node for interacting with the Pinch Payments API.
30
+
31
+ #### Payer Operations
32
+
33
+ | Operation | Description |
34
+ |-----------|-------------|
35
+ | **Create** | Create a new payer with full name, email, mobile number, and metadata |
36
+ | **Get** | Retrieve a payer by their ID (pyr_*) |
37
+ | **List** | List payers with pagination and optional search filter by name or email |
38
+
39
+ #### Payment Operations
40
+
41
+ | Operation | Description |
42
+ |-----------|-------------|
43
+ | **Get** | Retrieve a payment by its ID (pmt_*) |
44
+ | **For Payer** | Get all payments associated with a specific payer |
45
+
46
+ #### Payment Link Operations
47
+
48
+ | Operation | Description |
49
+ |-----------|-------------|
50
+ | **Create** | Create a payment link with amount, description, return URL, allowed payment methods (credit card/bank account), optional surcharging, currency, and expiry date |
51
+ | **Get** | Retrieve a payment link by its ID (plk_*) |
52
+ | **Get All** | List all payment links with pagination |
53
+ | **Get By Payer** | List payment links for a specific payer with pagination |
54
+
55
+ ### Pinch Trigger Node
56
+
57
+ A webhook trigger node that listens for real-time events from Pinch.
58
+
59
+ | Event | Description |
60
+ |-------|-------------|
61
+ | **All** | Listen to all event types |
62
+ | **Payer Created** | Triggered when a new payer record is created |
63
+ | **Payer Updated** | Triggered when a payer record is updated |
64
+ | **Subscription Created** | Triggered when a subscription is created for a payer |
65
+ | **Subscription Cancelled** | Triggered when a subscription is cancelled |
66
+ | **Subscription Complete** | Triggered when a subscription runs to completion |
67
+ | **Payment Created** | Triggered when a payment is created (via API or subscription) |
68
+ | **Realtime Payment** | Triggered when a realtime payment is executed |
69
+ | **Scheduled Process** | Triggered when scheduled payments are processed (daily on business days) |
70
+ | **Bank Results** | Triggered when bank account transactions return (may include dishonour status) |
71
+ | **Transfer** | Triggered when a transfer is created to settle funds to a merchant |
72
+ | **Refund Created** | Triggered when a refund is created |
73
+ | **Refund Updated** | Triggered when a refund status is updated |
74
+ | **Dispute Created** | Triggered when a dispute is created |
75
+ | **Dispute Updated** | Triggered when a dispute is updated |
76
+ | **Compliance Updated** | Triggered when merchant compliance information changes (e.g., bank account update, document upload) |
26
77
 
27
78
  ## Credentials
28
79
 
@@ -39,7 +90,20 @@ Tested with v1.57.0 and up but may work in previous versions.
39
90
 
40
91
  ## Usage
41
92
 
42
- Add the Pinch Trigger node to set up webhook events with the Pinch API.
93
+ ### Using the Pinch Node
94
+
95
+ 1. Add the **Pinch** node to your workflow
96
+ 2. Select a resource (Payer, Payment, or Payment Link)
97
+ 3. Choose the operation you want to perform
98
+ 4. Fill in the required fields
99
+ 5. Execute the workflow
100
+
101
+ ### Using the Pinch Trigger Node
102
+
103
+ 1. Add the **Pinch Trigger** node as the starting node of your workflow
104
+ 2. Select the events you want to listen for (or choose "All" for all events)
105
+ 3. Activate the workflow - this will automatically register a webhook with Pinch
106
+ 4. When events occur in Pinch, your workflow will be triggered with the event data
43
107
 
44
108
  ## Resources
45
109
 
@@ -53,9 +117,9 @@ Add the Pinch Trigger node to set up webhook events with the Pinch API.
53
117
  - Make code changes
54
118
  - Run `npm run dev` to run locally (will start up an n8n instance with custom nodes installed)
55
119
  - Run `npm run build` to build package
56
- - Publish to npm
120
+ - Publish to npm with `npm run releaseit` (required npm auth)
57
121
 
58
122
  ## Version history
59
123
 
60
- First release of the Pinch node with the webhook trigger node and the credentials.
61
- * v0.2.0 - Added support for Payment Links
124
+ * v0.2.0 - Added support for Payment Links
125
+ * v0.1.0 - First release of the Pinch node with the webhook trigger node and the credentials.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-pinch",
3
- "version": "0.2.2",
3
+ "version": "0.2.5",
4
4
  "description": "n8n nodes for interacting with the Pinch Payments API",
5
5
  "keywords": [
6
6
  "n8n-community-node-package"
@@ -1,16 +0,0 @@
1
- import { IAuthenticateGeneric, ICredentialDataDecryptedObject, ICredentialTestRequest, ICredentialType, IHttpRequestHelper, INodeProperties } from 'n8n-workflow';
2
- export declare class PinchApi implements ICredentialType {
3
- name: string;
4
- displayName: string;
5
- httpRequestNode: {
6
- name: string;
7
- docsUrl: string;
8
- apiBaseUrlPlaceholder: string;
9
- };
10
- properties: INodeProperties[];
11
- preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<{
12
- sessionToken: string;
13
- }>;
14
- authenticate: IAuthenticateGeneric;
15
- test: ICredentialTestRequest;
16
- }
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PinchApi = void 0;
4
- class PinchApi {
5
- constructor() {
6
- this.name = 'pinchApi';
7
- this.displayName = 'Pinch API';
8
- this.httpRequestNode = {
9
- name: 'Pinch',
10
- docsUrl: 'https://docs.getpinch.com.au/',
11
- apiBaseUrlPlaceholder: 'https://api.getpinch.com.au/',
12
- };
13
- this.properties = [
14
- {
15
- displayName: 'Session Token',
16
- name: 'sessionToken',
17
- type: 'hidden',
18
- typeOptions: {
19
- expirable: true,
20
- password: true,
21
- },
22
- default: '',
23
- },
24
- {
25
- displayName: 'Application Id',
26
- name: 'applicationId',
27
- type: 'string',
28
- default: '',
29
- },
30
- {
31
- displayName: 'Secret',
32
- name: 'secret',
33
- type: 'string',
34
- typeOptions: {
35
- password: true,
36
- },
37
- default: '',
38
- },
39
- {
40
- displayName: 'Environment',
41
- name: 'environment',
42
- type: 'options',
43
- options: [
44
- {
45
- name: 'Live',
46
- value: 'live',
47
- },
48
- {
49
- name: 'Test',
50
- value: 'test',
51
- }
52
- ],
53
- default: 'live',
54
- },
55
- {
56
- displayName: 'Advanced Options',
57
- name: 'showAdvancedOptions',
58
- type: 'boolean',
59
- default: false
60
- },
61
- {
62
- displayName: 'Auth Base Url',
63
- name: 'authBaseUrl',
64
- type: 'string',
65
- default: 'https://auth.getpinch.com.au',
66
- displayOptions: {
67
- show: {
68
- showAdvancedOptions: [true]
69
- }
70
- }
71
- },
72
- {
73
- displayName: 'API Base Url',
74
- name: 'apiBaseUrl',
75
- type: 'string',
76
- default: 'https://api.getpinch.com.au',
77
- displayOptions: {
78
- show: {
79
- showAdvancedOptions: [true]
80
- }
81
- }
82
- },
83
- ];
84
- this.authenticate = {
85
- type: 'generic',
86
- properties: {
87
- headers: {
88
- Authorization: '=Bearer {{$credentials.sessionToken}}',
89
- 'Pinch-Version': '2020.1',
90
- 'User-Agent': 'n8n'
91
- },
92
- },
93
- };
94
- this.test = {
95
- request: {
96
- baseURL: '={{$credentials.apiBaseUrl ?? \'https://api.getpinch.com.au\'}}/{{$credentials.environment}}/health/auth',
97
- url: '',
98
- },
99
- };
100
- }
101
- async preAuthentication(credentials) {
102
- var _a;
103
- const authHeader = 'Basic ' + Buffer.from(credentials.applicationId + ':' + credentials.secret).toString('base64');
104
- const body = {
105
- grant_type: 'client_credentials',
106
- scope: 'api1'
107
- };
108
- const authBaseUrl = (_a = credentials.authBaseUrl) !== null && _a !== void 0 ? _a : 'https://auth.getpinch.com.au';
109
- const { access_token } = (await this.helpers.httpRequest({
110
- method: 'POST',
111
- url: `${authBaseUrl}/connect/token`,
112
- body: body,
113
- json: false,
114
- headers: {
115
- 'Authorization': authHeader,
116
- 'Content-Type': 'application/x-www-form-urlencoded'
117
- },
118
- }));
119
- return { sessionToken: access_token };
120
- }
121
- ;
122
- }
123
- exports.PinchApi = PinchApi;
124
- //# sourceMappingURL=PinchApi.credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PinchApi.credentials.js","sourceRoot":"","sources":["../../credentials/PinchApi.credentials.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
- export declare class Pinch implements INodeType {
3
- description: INodeTypeDescription;
4
- execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
- }
@@ -1,155 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pinch = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const descriptions_1 = require("./descriptions");
6
- const helpers_1 = require("./helpers");
7
- class Pinch {
8
- constructor() {
9
- this.description = {
10
- displayName: 'Pinch',
11
- name: 'pinch',
12
- icon: 'file:pinchNode.svg',
13
- group: [],
14
- version: 1,
15
- subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
16
- description: 'Node for interacting with the Pinch Payments API',
17
- documentationUrl: 'https://docs.getpinch.com.au/',
18
- defaults: {
19
- name: 'Pinch',
20
- },
21
- inputs: ['main'],
22
- outputs: ['main'],
23
- credentials: [
24
- {
25
- name: 'pinchApi',
26
- required: true,
27
- }
28
- ],
29
- properties: [
30
- {
31
- displayName: 'Resource',
32
- name: 'resource',
33
- type: 'options',
34
- noDataExpression: true,
35
- options: [
36
- {
37
- name: 'Payer',
38
- value: 'payer',
39
- },
40
- {
41
- name: 'Payment',
42
- value: 'payment',
43
- },
44
- {
45
- name: 'Payment Link',
46
- value: 'payment-link',
47
- },
48
- ],
49
- default: 'payment-link',
50
- },
51
- ...descriptions_1.payerOperations,
52
- ...descriptions_1.payerFields,
53
- ...descriptions_1.paymentOperations,
54
- ...descriptions_1.paymentFields,
55
- ...descriptions_1.paymentLinkOperations,
56
- ...descriptions_1.paymentLinkFields
57
- ],
58
- };
59
- }
60
- async execute() {
61
- const items = this.getInputData();
62
- const resource = this.getNodeParameter('resource', 0);
63
- const operation = this.getNodeParameter('operation', 0);
64
- let responseData;
65
- const returnData = [];
66
- for (let i = 0; i < items.length; i++) {
67
- try {
68
- if (resource === 'payer') {
69
- if (operation === 'get') {
70
- const payerId = this.getNodeParameter('payerId', i);
71
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payers/${payerId}`, {}, {});
72
- }
73
- else if (operation == 'create') {
74
- const body = {
75
- fullName: this.getNodeParameter('fullName', i),
76
- firstName: this.getNodeParameter('firstName', i),
77
- lastName: this.getNodeParameter('lastName', i),
78
- emailAddress: this.getNodeParameter('emailAddress', i),
79
- mobileNumber: this.getNodeParameter('mobileNumber', i),
80
- metadata: this.getNodeParameter('metadata', i),
81
- };
82
- responseData = await helpers_1.pinchApiRequest.call(this, 'POST', '/payers/', body, {});
83
- }
84
- }
85
- else if (resource === 'payment') {
86
- if (operation === 'get') {
87
- const paymentId = this.getNodeParameter('paymentId', i);
88
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payments/${paymentId}`, {}, {});
89
- }
90
- else if (operation === 'for-payer') {
91
- const payerId = this.getNodeParameter('payerId', i);
92
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payments/payer/${payerId}`, {}, {});
93
- }
94
- }
95
- else if (resource === 'source') {
96
- }
97
- else if (resource === 'token') {
98
- if (operation === 'create') {
99
- const type = this.getNodeParameter('type', i);
100
- const body = {};
101
- if (type !== 'cardToken') {
102
- throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Only card token creation implemented.', { itemIndex: i });
103
- }
104
- body.card = {
105
- number: this.getNodeParameter('number', i),
106
- exp_month: this.getNodeParameter('expirationMonth', i),
107
- exp_year: this.getNodeParameter('expirationYear', i),
108
- cvc: this.getNodeParameter('cvc', i),
109
- };
110
- responseData = await helpers_1.pinchApiRequest.call(this, 'POST', '/tokens', body, {});
111
- }
112
- }
113
- else if (resource === 'payment-link') {
114
- if (operation === 'create') {
115
- const body = {
116
- amount: this.getNodeParameter('amount', i),
117
- payerId: this.getNodeParameter('payerId', i),
118
- description: this.getNodeParameter('description', i),
119
- returnUrl: this.getNodeParameter('returnUrl', i),
120
- currency: this.getNodeParameter('currency', i),
121
- linkExpiryDate: this.getNodeParameter('linkExpiryDate', i),
122
- allowedPaymentMethods: this.getNodeParameter('allowedPaymentMethods', i),
123
- surchargedPaymentMethods: this.getNodeParameter('surchargedPaymentMethods', i)
124
- };
125
- responseData = await helpers_1.pinchApiRequest.call(this, 'POST', '/payment-links', body, {});
126
- }
127
- else if (operation === 'get') {
128
- const paymentLinkId = this.getNodeParameter('paymentLinkId', i);
129
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payment-links/${paymentLinkId}`, {}, {});
130
- }
131
- else if (operation === 'get-all') {
132
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payment-links`, {}, {});
133
- }
134
- else if (operation === 'get-by-payer') {
135
- const payerId = this.getNodeParameter('payerId', i);
136
- responseData = await helpers_1.pinchApiRequest.call(this, 'GET', `/payment-links/payer/${payerId}`, {}, {});
137
- }
138
- }
139
- }
140
- catch (error) {
141
- if (this.continueOnFail(error)) {
142
- const executionErrorData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray({ error: error.message }), { itemData: { item: i } });
143
- returnData.push(...executionErrorData);
144
- continue;
145
- }
146
- throw error;
147
- }
148
- const executionData = this.helpers.constructExecutionMetaData(this.helpers.returnJsonArray(responseData), { itemData: { item: i } });
149
- returnData.push(...executionData);
150
- }
151
- return [returnData];
152
- }
153
- }
154
- exports.Pinch = Pinch;
155
- //# sourceMappingURL=Pinch.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Pinch.node.js","sourceRoot":"","sources":["../../../nodes/Pinch/Pinch.node.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import type { IHookFunctions, IWebhookFunctions, INodeType, INodeTypeDescription, IWebhookResponseData } from 'n8n-workflow';
2
- export declare class PinchTrigger implements INodeType {
3
- description: INodeTypeDescription;
4
- webhookMethods: {
5
- default: {
6
- checkExists(this: IHookFunctions): Promise<boolean>;
7
- create(this: IHookFunctions): Promise<boolean>;
8
- delete(this: IHookFunctions): Promise<boolean>;
9
- };
10
- };
11
- webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
12
- }
@@ -1,215 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PinchTrigger = void 0;
4
- const n8n_workflow_1 = require("n8n-workflow");
5
- const helpers_1 = require("./helpers");
6
- class PinchTrigger {
7
- constructor() {
8
- this.description = {
9
- displayName: 'Pinch Trigger',
10
- name: 'pinchTrigger',
11
- icon: 'file:pinchNode.svg',
12
- group: ['trigger'],
13
- version: 1,
14
- description: 'Handle Pinch events via webhooks',
15
- documentationUrl: 'https://docs.getpinch.com.au/docs/events',
16
- defaults: {
17
- name: 'Pinch Trigger',
18
- },
19
- inputs: [],
20
- outputs: ['main'],
21
- credentials: [
22
- {
23
- name: 'pinchApi',
24
- required: true,
25
- },
26
- ],
27
- webhooks: [
28
- {
29
- name: 'default',
30
- httpMethod: 'POST',
31
- responseMode: 'onReceived',
32
- path: 'webhook',
33
- },
34
- ],
35
- properties: [
36
- {
37
- displayName: 'Events',
38
- name: 'events',
39
- type: 'multiOptions',
40
- required: true,
41
- default: [],
42
- description: 'The event(s) to listen to',
43
- options: [
44
- {
45
- name: 'All',
46
- value: 'all',
47
- description: 'Any time any type of event is triggered',
48
- },
49
- {
50
- name: 'Payer Created',
51
- value: 'payer-created',
52
- description: 'Occurs whenever a new Payer record is created',
53
- },
54
- {
55
- name: 'Payer Updated',
56
- value: 'payer-updated',
57
- description: 'Occurs whenever a Payer record is updated',
58
- },
59
- {
60
- name: 'Subscription Cancelled',
61
- value: 'subscription-cancelled',
62
- description: 'Occurs whenever a Subscription is cancelled',
63
- },
64
- {
65
- name: 'Subscription Created',
66
- value: 'subscription-created',
67
- description: 'Occurs whenever a Subscription is created for a Payer',
68
- },
69
- {
70
- name: 'Subscription Complete',
71
- value: 'subscription-complete',
72
- description: 'Occurs whenever a Subscription is run to completion',
73
- },
74
- {
75
- name: 'Bank Results',
76
- value: 'bank-results',
77
- description: 'Occurs whenever a bank account transaction return (as these take time to process) and could result in a dishonour status',
78
- },
79
- {
80
- name: 'Scheduled Process',
81
- value: 'scheduled-process',
82
- description: 'Occurs whenever scheduled Payments are processed (daily on business days)',
83
- },
84
- {
85
- name: 'Transfer',
86
- value: 'transfer',
87
- description: 'Occurs whenever a transfer is created to settle funds to a Merchant',
88
- },
89
- {
90
- name: 'Realtime Payment',
91
- value: 'realtime-payment',
92
- description: 'Occurs whenever a realtime payment is executed',
93
- },
94
- {
95
- name: 'Payment Created',
96
- value: 'payment-created',
97
- description: 'Occurs whenever a Payment is created in Pinch. This could be done through the Save Payment endpoint or when a Subscription creates its payments.',
98
- },
99
- {
100
- name: 'Refund Created',
101
- value: 'refund-created',
102
- description: 'Occurs whenever a Refund is created',
103
- },
104
- {
105
- name: 'Refund Updated',
106
- value: 'refund-updated',
107
- description: 'Occurs whenever a Refund is updated (such as when the refund status gets updated through its processing)',
108
- },
109
- {
110
- name: 'Compliance Updated',
111
- value: 'compliance-updated',
112
- description: 'Occurs whenever a Merchant record is updated that will result in a compliance check (such as updating a Merchants bank account or when a Merchant uploads a document for verification)',
113
- },
114
- {
115
- name: 'Dispute Created',
116
- value: 'dispute-created',
117
- description: 'Occurs whenever a Dispute is created',
118
- },
119
- {
120
- name: 'Dispute Updated',
121
- value: 'dispute-updated',
122
- description: 'Occurs whenever a Dispute is updated',
123
- },
124
- {
125
- name: 'Merchant Compliance Updated',
126
- value: 'merchant-compliance-updated',
127
- description: 'Occurs whenever a Merchants compliance information is updated by a compliance officer, typically this happens when a Merchants verification status changes',
128
- }
129
- ],
130
- },
131
- ],
132
- };
133
- this.webhookMethods = {
134
- default: {
135
- async checkExists() {
136
- const webhookData = this.getWorkflowStaticData('node');
137
- if (webhookData.webhookId === undefined) {
138
- return false;
139
- }
140
- const endpoint = `/webhooks/${webhookData.webhookId}`;
141
- try {
142
- await helpers_1.pinchApiRequest.call(this, 'GET', endpoint, {});
143
- }
144
- catch (error) {
145
- if (error.httpCode === '404' || error.message.includes('resource_missing')) {
146
- delete webhookData.webhookId;
147
- delete webhookData.webhookSecret;
148
- return false;
149
- }
150
- throw error;
151
- }
152
- return true;
153
- },
154
- async create() {
155
- const webhookUrl = this.getNodeWebhookUrl('default');
156
- const events = this.getNodeParameter('events', []);
157
- const endpoint = '/webhooks';
158
- const body = {
159
- uri: webhookUrl,
160
- webhookFormat: 'camel-case',
161
- eventTypes: events
162
- };
163
- let responseData;
164
- try {
165
- responseData = await helpers_1.pinchApiRequest.call(this, 'POST', endpoint, body);
166
- }
167
- catch (error) {
168
- throw error;
169
- }
170
- if (responseData.id === undefined ||
171
- responseData.secret === undefined ||
172
- responseData.uri === undefined) {
173
- throw new n8n_workflow_1.NodeApiError(this.getNode(), responseData, {
174
- message: 'Pinch webhook creation response did not contain the expected data.',
175
- });
176
- }
177
- const webhookData = this.getWorkflowStaticData('node');
178
- webhookData.webhookId = responseData.id;
179
- webhookData.webhookSecret = responseData.secret;
180
- return true;
181
- },
182
- async delete() {
183
- const webhookData = this.getWorkflowStaticData('node');
184
- if (webhookData.webhookId !== undefined) {
185
- const endpoint = `/webhooks/${webhookData.webhookId}`;
186
- const body = {};
187
- try {
188
- await helpers_1.pinchApiRequest.call(this, 'DELETE', endpoint, body);
189
- }
190
- catch (error) {
191
- return false;
192
- }
193
- delete webhookData.webhookId;
194
- delete webhookData.webhookSecret;
195
- }
196
- return true;
197
- },
198
- },
199
- };
200
- }
201
- async webhook() {
202
- const bodyData = this.getBodyData();
203
- const req = this.getRequestObject();
204
- const events = this.getNodeParameter('events', []);
205
- const eventType = bodyData.type;
206
- if (eventType === undefined || (!events.includes('all') && !events.includes(eventType))) {
207
- return {};
208
- }
209
- return {
210
- workflowData: [this.helpers.returnJsonArray(req.body)],
211
- };
212
- }
213
- }
214
- exports.PinchTrigger = PinchTrigger;
215
- //# sourceMappingURL=PinchTrigger.node.js.map