diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/donations/adyenGiving.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/donations/adyenGiving.js index d361f8c32..0b0aceee4 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/donations/adyenGiving.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/donations/adyenGiving.js @@ -31,81 +31,75 @@ const { AdyenError } = require('*/cartridge/adyen/logs/adyenError'); // eslint-disable-next-line complexity function donate(donationReference, donationAmount, orderToken) { - try { - if (session.privacy.orderNo !== donationReference) { - throw new AdyenError('Donation reference is invalid'); - } + if (session.privacy.orderNo !== donationReference) { + throw new AdyenError('Donation reference is invalid'); + } - let paymentMethodVariant; - const order = OrderMgr.getOrder(donationReference, orderToken); - const paymentInstrument = order.getPaymentInstruments( - AdyenHelper.getOrderMainPaymentInstrumentType(order), - )[0]; - const donationToken = - paymentInstrument.paymentTransaction.custom.Adyen_donationToken; - const originalReference = - paymentInstrument.paymentTransaction.custom.Adyen_pspReference; - const paymentData = JSON.parse( - paymentInstrument.paymentTransaction.custom.Adyen_log, - ); - const paymentCurrency = - paymentData.amount.currency || paymentData.fullResponse?.amount?.currency; - const availableDonationAmounts = AdyenHelper.getDonationAmounts(); - paymentMethodVariant = - paymentData.paymentMethod?.type || - paymentData.fullResponse?.paymentMethod?.type; + let paymentMethodVariant; + const order = OrderMgr.getOrder(donationReference, orderToken); + const paymentInstrument = order.getPaymentInstruments( + AdyenHelper.getOrderMainPaymentInstrumentType(order), + )[0]; + const donationToken = + paymentInstrument.paymentTransaction.custom.Adyen_donationToken; + const originalReference = + paymentInstrument.paymentTransaction.custom.Adyen_pspReference; + const paymentData = JSON.parse( + paymentInstrument.paymentTransaction.custom.Adyen_log, + ); + const paymentCurrency = + paymentData.amount.currency || paymentData.fullResponse?.amount?.currency; + const availableDonationAmounts = AdyenHelper.getDonationAmounts(); + paymentMethodVariant = + paymentData.paymentMethod?.type || + paymentData.fullResponse?.paymentMethod?.type; - // for iDeal donations, the payment method variant needs to be set to sepadirectdebit - if (paymentMethodVariant === 'ideal') { - paymentMethodVariant = 'sepadirectdebit'; - } - // for Apple Pay donations, the payment method variant needs to be the brand - if (paymentMethodVariant === 'applepay') { - paymentMethodVariant = - paymentData.paymentMethod?.brand || - paymentData.fullResponse?.paymentMethod?.brand; - } - const requestObject = { - merchantAccount: AdyenConfigs.getAdyenMerchantAccount(), - donationAccount: AdyenConfigs.getAdyenGivingCharityAccount(), - amount: donationAmount, - reference: `${AdyenConfigs.getAdyenMerchantAccount()}-${donationReference}`, - donationOriginalPspReference: originalReference, - donationToken, - paymentMethod: { - type: paymentMethodVariant, - }, - shopperInteraction: constants.SHOPPER_INTERACTIONS.CONT_AUTH, - }; + // for iDeal donations, the payment method variant needs to be set to sepadirectdebit + if (paymentMethodVariant === 'ideal') { + paymentMethodVariant = 'sepadirectdebit'; + } + // for Apple Pay donations, the payment method variant needs to be the brand + if (paymentMethodVariant === 'applepay') { + paymentMethodVariant = + paymentData.paymentMethod?.brand || + paymentData.fullResponse?.paymentMethod?.brand; + } + const requestObject = { + merchantAccount: AdyenConfigs.getAdyenMerchantAccount(), + donationAccount: AdyenConfigs.getAdyenGivingCharityAccount(), + amount: donationAmount, + reference: `${AdyenConfigs.getAdyenMerchantAccount()}-${donationReference}`, + donationOriginalPspReference: originalReference, + donationToken, + paymentMethod: { + type: paymentMethodVariant, + }, + shopperInteraction: constants.SHOPPER_INTERACTIONS.CONT_AUTH, + }; - if ( - availableDonationAmounts.indexOf(parseInt(donationAmount.value, 10)) === - -1 - ) { - throw new AdyenError('Donation amount is invalid'); - } + if ( + availableDonationAmounts.indexOf(parseInt(donationAmount.value, 10)) === -1 + ) { + throw new AdyenError('Donation amount is invalid'); + } - if (paymentCurrency !== donationAmount.currency) { - throw new AdyenError('Donation currency is invalid'); - } + if (paymentCurrency !== donationAmount.currency) { + throw new AdyenError('Donation currency is invalid'); + } - const response = AdyenHelper.executeCall( - constants.SERVICE.ADYENGIVING, - requestObject, - ); + const response = AdyenHelper.executeCall( + constants.SERVICE.ADYENGIVING, + requestObject, + ); - Transaction.wrap(() => { - order.custom.Adyen_donationAmount = JSON.stringify(donationAmount); - // Donation token is deleted in case the donation is completed once - if (response.status === constants.DONATION_RESULT.COMPLETED) { - paymentInstrument.paymentTransaction.custom.Adyen_donationToken = null; - } - }); - return response; - } catch (error) { - AdyenLogs.error_log('/donations call failed:', error); - return { error: true }; - } + Transaction.wrap(() => { + order.custom.Adyen_donationAmount = JSON.stringify(donationAmount); + // Donation token is deleted in case the donation is completed once + if (response.status === constants.DONATION_RESULT.COMPLETED) { + paymentInstrument.paymentTransaction.custom.Adyen_donationToken = null; + } + }); + return response; } function donation(req, res, next) { diff --git a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment.js b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment.js index 949e9909a..10b944ac1 100644 --- a/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment.js +++ b/src/cartridges/int_adyen_SFRA/cartridge/adyen/scripts/payments/adyenDeleteRecurringPayment.js @@ -23,6 +23,7 @@ const AdyenHelper = require('*/cartridge/adyen/utils/adyenHelper'); const AdyenConfigs = require('*/cartridge/adyen/utils/adyenConfigs'); const constants = require('*/cartridge/adyen/config/constants'); +const { AdyenError } = require('*/cartridge/adyen/logs/adyenError'); // eslint-disable-next-line complexity function deleteRecurringPayment(args) { @@ -41,7 +42,7 @@ function deleteRecurringPayment(args) { } if (!(customerID && recurringDetailReference)) { - throw new Error('No Customer ID or RecurringDetailReference provided'); + throw new AdyenError('No Customer ID or RecurringDetailReference provided'); } const requestObject = {