From f80d8ce6d03b96aa70023fafb69652e5f89de859 Mon Sep 17 00:00:00 2001 From: Damian Karzon Date: Wed, 20 Mar 2024 17:26:00 +1000 Subject: [PATCH] v1.3.2 - Added the Pre-Approval link prop to payer response objects --- creates/payer_create.js | 5 +++++ package.json | 2 +- triggers/evt_payer_created.js | 17 +++++++++++++++-- triggers/evt_payer_updated.js | 15 +++++++++++++-- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/creates/payer_create.js b/creates/payer_create.js index ce89382..80233bc 100644 --- a/creates/payer_create.js +++ b/creates/payer_create.js @@ -30,6 +30,10 @@ const createPayer = (z, bundle) => { return z.request(options).then((response) => { response.throwForStatus(); const results = response.data; + if (results) { + // Setup the Pre-Approval link here so integrators don't have to build it themselves + results.preapprovalUrl = `https://app.getpinch.com/preapproval/${bundle.authData.merchant_id}/${results.id}`; + } return results; }); }; @@ -179,6 +183,7 @@ module.exports = { { key: 'companyName', label: 'Company Name' }, { key: 'companyRegistrationNumber', label: 'Company Registration Number' }, { key: 'metadata', label: 'Metadata' }, + { key: 'preapprovalUrl', label: 'Pre-Approval link'} ], }, key: 'payer_create', diff --git a/package.json b/package.json index 78181ad..3415b7a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pinch-payments", - "version": "1.3.1", + "version": "1.3.2", "description": "Pinch is a PCI Compliant, Australian payments platform offering automated Bank Account Direct Debit and Credit Card payments for standard and repeating invoices or standalone transactions.", "main": "index.js", "scripts": { diff --git a/triggers/evt_payer_created.js b/triggers/evt_payer_created.js index 5c57c8b..a55d894 100644 --- a/triggers/evt_payer_created.js +++ b/triggers/evt_payer_created.js @@ -15,7 +15,19 @@ const perform = (z, bundle) => { return z.request(options).then((response) => { response.throwForStatus(); const results = response.data; - return results.data; + + const eventPayers = results.data; + + if (eventPayers && eventPayers.length > 0) { + eventPayers.forEach(eventPayer => { + if (eventPayer.data && eventPayer.data.payer) { + // Setup the Pre-Approval link here so integrators don't have to build it themselves + eventPayer.data.payer.preapprovalUrl = `https://app.getpinch.com/preapproval/${bundle.authData.merchant_id}/${eventPayer.data.payer.id}`; + } + }); + } + + return eventPayers; }); }; @@ -42,7 +54,8 @@ module.exports = { { key: 'data__payer__firstName', type: 'string' }, { key: 'data__payer__lastName', type: 'string' }, { key: 'data__payer__emailAddress', type: 'string' }, - { key: 'data__payer__companyName', type: 'string' } + { key: 'data__payer__companyName', type: 'string' }, + { key: 'data__payer__preapprovalUrl', type: 'string' } ], }, key: 'evt_payer_created', diff --git a/triggers/evt_payer_updated.js b/triggers/evt_payer_updated.js index c2736b7..833fd63 100644 --- a/triggers/evt_payer_updated.js +++ b/triggers/evt_payer_updated.js @@ -15,7 +15,17 @@ const perform = (z, bundle) => { return z.request(options).then((response) => { response.throwForStatus(); const results = response.data; - return results.data; + const eventPayers = results.data; + + if (eventPayers && eventPayers.length > 0) { + eventPayers.forEach(eventPayer => { + if (eventPayer.data && eventPayer.data.payer) { + // Setup the Pre-Approval link here so integrators don't have to build it themselves + eventPayer.data.payer.preapprovalUrl = `https://app.getpinch.com/preapproval/${bundle.authData.merchant_id}/${eventPayer.data.payer.id}`; + } + }); + } + return eventPayers; }); }; @@ -42,7 +52,8 @@ module.exports = { { key: 'data__payer__firstName', type: 'string' }, { key: 'data__payer__lastName', type: 'string' }, { key: 'data__payer__emailAddress', type: 'string' }, - { key: 'data__payer__companyName', type: 'string' } + { key: 'data__payer__companyName', type: 'string' }, + { key: 'data__payer__preapprovalUrl', type: 'string' } ], }, key: 'evt_payer_updated',