UNPKG

braintree

Version:

A library for server-side integrating with Braintree.

52 lines (47 loc) 2.24 kB
"use strict"; /* eslint-disable no-console */ let ApplePayCard = require("./apple_pay_card").ApplePayCard; let AndroidPayCard = require("./android_pay_card").AndroidPayCard; let CreditCard = require("./credit_card").CreditCard; let PayPalAccount = require("./paypal_account").PayPalAccount; let UnknownPaymentMethod = require("./unknown_payment_method").UnknownPaymentMethod; let PaymentMethodNonce = require("./payment_method_nonce").PaymentMethodNonce; let UsBankAccount = require("./us_bank_account").UsBankAccount; let VenmoAccount = require("./venmo_account").VenmoAccount; let VisaCheckoutCard = require("./visa_checkout_card").VisaCheckoutCard; let SamsungPayCard = require("./samsung_pay_card").SamsungPayCard; let SepaDirectDebitAccount = require("./sepa_direct_debit_account").SepaDirectDebitAccount; class PaymentMethodParser { static parsePaymentMethod(response) { if (response.creditCard) { return new CreditCard(response.creditCard); } else if (response.paypalAccount) { return new PayPalAccount(response.paypalAccount); } else if (response.applePayCard) { return new ApplePayCard(response.applePayCard); } else if (response.androidPayCard) { // NEXT_MAJOR_VERSION rename Android Pay to Google Pay return new AndroidPayCard(response.androidPayCard); } else if (response.paymentMethodNonce) { return new PaymentMethodNonce(response.paymentMethodNonce); } else if (response.usBankAccount) { return new UsBankAccount(response.usBankAccount); } else if (response.venmoAccount) { return new VenmoAccount(response.venmoAccount); } else if (response.visaCheckoutCard) { return new VisaCheckoutCard(response.visaCheckoutCard); } else if (response.samsungPayCard) { // NEXT_MAJOR_VERSION remove SamsungPayCard console.warn( "[DEPRECATED] `SamsungPayCard` is deprecated and no longer a supported payment method type" ); return new SamsungPayCard(response.samsungPayCard); } else if (response.sepaDebitAccount) { return new SepaDirectDebitAccount(response.sepaDebitAccount); } return new UnknownPaymentMethod(response); } } module.exports = { PaymentMethodParser: PaymentMethodParser };