import type { CreditCardNetwork } from '../../../credit_card_network'; import { PaymentType } from '../../../payment_type'; import type { PaymentResponseSource } from '../payment_response_source'; export class CreditCardResponseSource implements PaymentResponseSource { public type: PaymentType = PaymentType.creditCard; public network: CreditCardNetwork; public name: string; public number: string; public gatewayId: string; public transactionUrl: string; public referenceNumber?: string; public token?: string; public message?: string; constructor({ company, name, number, gatewayId, transactionUrl, referenceNumber, token, message, }: { company: CreditCardNetwork; name: string; number: string; gatewayId: string; transactionUrl: string; referenceNumber: string; token: string; message: string; }) { this.network = company; this.name = name; this.number = number; this.gatewayId = gatewayId; this.transactionUrl = transactionUrl; this.referenceNumber = referenceNumber; this.token = token; this.message = message; } static fromJson(json: Record): CreditCardResponseSource { return new CreditCardResponseSource({ company: json.company, name: json.name, number: json.number, gatewayId: json.gateway_id, transactionUrl: json.transaction_url, referenceNumber: json.reference_number, token: json.token, message: json.message, }); } }