@hipay/hipay-enterprise-sdk-nodejs
Version:
The HiPay Enterprise SDK for NodeJS is a library for developers who want to integrate HiPay Enterprise payment methods to any NodeJS platform.
51 lines (42 loc) • 1.74 kB
JavaScript
;
const InvalidArgumentException = require('../../../Error/InvalidArgumentException');
const IssuerBankIDPaymentMethod = require('./IssuerBankIDPaymentMethod');
class SEPADirectDebitPaymentMethod extends IssuerBankIDPaymentMethod {
/**
* Creates a SEPA Direct Debit Payment Method Object
*
* @param {Object} values
* @param {String} values.issuer_bank_id Business Identifier Code of the customer's bank
* @param {String} [values.debit_agreement_id] Debit agreement ID
* @param {Number} [values.recurring_payment = 0] Indicates if the debit agreement will be created for a single-use or a multi-use. 0 : Single use, 1 : Multi-use
* @param {String} values.bank_name Customer's bank name
* @param {String} values.iban Customer's IBAN
*/
constructor(values) {
super(values);
if (Object.hasOwn(values, 'debit_agreement_id')) {
this.debit_agreement_id = values.debit_agreement_id;
}
if (Object.hasOwn(values, 'recurring_payment')) {
this.recurring_payment = values.recurring_payment;
}
if (Object.hasOwn(values, 'bank_name')) {
this.bank_name = values.bank_name;
} else {
throw new InvalidArgumentException('Bank name must be present');
}
if (Object.hasOwn(values, 'iban')) {
this.iban = values.iban;
} else {
throw new InvalidArgumentException('IBAN must be present');
}
}
initValues() {
super.initValues();
this.debit_agreement_id = null;
this.recurring_payment = 0;
this.bank_name = null;
this.iban = null;
}
}
module.exports = SEPADirectDebitPaymentMethod;