Skip to content

Commit

Permalink
Introduce TotalResult class
Browse files Browse the repository at this point in the history
  • Loading branch information
ckosmowski committed Nov 17, 2018
1 parent 8687bf5 commit 4f6a076
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 21 deletions.
29 changes: 15 additions & 14 deletions src/FinTSClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import { SegmentName } from './SegmentName';
import { SignInfo } from './SignInfo';
import { TanVerfahren } from './TanVerfahren';
import { UPD } from './UPD';
import { TotalResult } from './TotalResult';

export class FinTSClient {

Expand Down Expand Up @@ -782,22 +783,22 @@ export class FinTSClient {
const HISAL = reqSaldo.getSegByName(relatedRespSegments, 'HISAL');
if (HISAL !== null) {
try {
const result = {
desc: reqSaldo.getElFromSeg(HISAL, 2, null),
cur: reqSaldo.getElFromSeg(HISAL, 3, null),
saldo: Helper.getSaldo(HISAL, 4, false),
saldo_vorgemerkt: Helper.getSaldo(HISAL, 5, false),
credit_line: Helper.getBetrag(HISAL, 6),
avail_amount: Helper.getBetrag(HISAL, 7),
used_amount: Helper.getBetrag(HISAL, 8),
overdraft: null,
booking_date: null,
faelligkeit_date: Helper.getJSDateFromSeg(HISAL, 11),
};
const result = new TotalResult();
result.desc = reqSaldo.getElFromSeg(HISAL, 2, null);
result.currency = reqSaldo.getElFromSeg(HISAL, 3, null);
result.total = Helper.getSaldo(HISAL, 4, false);
result.totalReserved = Helper.getSaldo(HISAL, 5, false);
result.creditLine = Helper.getBetrag(HISAL, 6);
result.availableAmount = Helper.getBetrag(HISAL, 7);
result.usedAmount = Helper.getBetrag(HISAL, 8);
result.overdraft = null;
result.bookingDate = null;
result.dueDate = Helper.getJSDateFromSeg(HISAL, 11);

if (segVers === 5) {
result.booking_date = Helper.getJSDateFromSeg(HISAL, 9, 10);
result.bookingDate = Helper.getJSDateFromSeg(HISAL, 9, 10);
} else {
result.booking_date = Helper.getJSDateFromSegTSP(HISAL, 11);
result.bookingDate = Helper.getJSDateFromSegTSP(HISAL, 11);
result.overdraft = Helper.getBetrag(HISAL, 9);
}
cb(null, recvMsg, result);
Expand Down
15 changes: 15 additions & 0 deletions src/TotalResult.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { Betrag } from './Betrag';
import { Saldo } from './Saldo';

export class TotalResult {
public desc: string;
public currency: string;
public total: Saldo;
public totalReserved: Saldo;
public creditLine: Betrag;
public availableAmount: Betrag;
public usedAmount: Betrag;
public overdraft: Betrag;
public bookingDate: Date;
public dueDate: Date;
}
15 changes: 8 additions & 7 deletions test/FinTSClient.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { Saldo } from '../src/Saldo';
import { Umsatz } from '../src/Umsatz';
import { makeCallback } from './TestHelpers';
import TestServer from './TestServer';
import { TotalResult } from '../src/TotalResult';

let testServer: TestServer;
const bankenliste = {
Expand Down Expand Up @@ -183,14 +184,14 @@ describe('The FinTSClient', () => {
try {
await client.connect();
expect(client.konten[0].sepaData).not.toBeNull();
client.getTotal(client.konten[0].sepaData, makeCallback(done, (error2, rMsg, data) => {
expect(data.saldo).toBeDefined();
expect(data.saldo).not.toBeNull();
client.getTotal(client.konten[0].sepaData, makeCallback(done, (error2, rMsg, data: TotalResult) => {
expect(data.total).toBeDefined();
expect(data.total).not.toBeNull();

const saldo = data.saldo as Saldo;
expect(saldo.betrag).toEqual({value: 4.36, currency: 'EUR'});
expect(saldo.currency).toBe('EUR');
expect(saldo.sollHaben).toBe('H');
const total = data.total as Saldo;
expect(total.betrag).toEqual({ value: 4.36, currency: 'EUR'});
expect(total.currency).toBe('EUR');
expect(total.sollHaben).toBe('H');

client.msgEndDialog(makeCallback(done, (errorEnd, recvMsg2) => {
done();
Expand Down

0 comments on commit 4f6a076

Please sign in to comment.