All files / src/core/factories paymentDetailsFactory.ts

100% Statements 12/12
100% Branches 4/4
100% Functions 6/6
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 438x         8x 8x 8x 8x     3x                 45x               2x       2x       1x       9x    
import { injectable } from "inversify";
import CardOperation from "../types/cardOperation";
import StandardTransfer from "../types/standardTransfer";
 
@injectable()
export default class PaymentDetailsFactory {
    private static readonly defaultFeeRecipient = 'UNICREDIT BULBANK';
    private static readonly defaultIban = 'N/A';
    private static readonly defaultDescription = 'N/A';
    
    public cardOperation(merchant: string, instrument: string, sum: string, currency: string) {
        return {
            recipient: merchant,
            instrument: instrument,
            sum: sum,
            currency: currency
        } as CardOperation;
    }
 
    public standardTransfer(recipient: string, recipientIban: string, description: string) {
        return {
            recipient: recipient,
            recipientIban: recipientIban,
            description: description
        } as StandardTransfer;
    }
 
    public crossBorderTransfer(recipient: string, iban: string, description: string) {
        return this.standardTransfer(recipient, iban, description);
    }
 
    public crossBorderTransferFee(description: string) {
        return this.standardTransfer(PaymentDetailsFactory.defaultFeeRecipient, PaymentDetailsFactory.defaultIban, description);
    }
 
    public deskWithdrawal(recipient: string, description: string) {
        return this.standardTransfer(recipient, PaymentDetailsFactory.defaultIban, description);
    }
 
    public standardFee(description: string | null) {
        return this.standardTransfer(PaymentDetailsFactory.defaultFeeRecipient, PaymentDetailsFactory.defaultIban, description ?? PaymentDetailsFactory.defaultDescription);
    }
}