From fdec080979e0b24311a48b2b72bd858e67671960 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Henryk=20Pl=C3=B6tz?= Date: Mon, 27 Aug 2018 01:54:01 +0200 Subject: [PATCH] Implement querying the status protocol --- fints/client.py | 15 +++++++++++++++ fints/segments/__init__.py | 6 +++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/fints/client.py b/fints/client.py index c60ad2f..b51ded2 100644 --- a/fints/client.py +++ b/fints/client.py @@ -33,6 +33,7 @@ from .segments.debit import HKDSE1, HKDSE2, HKDME1, HKDME2, HKDMC1, HKDBS1, HKDB from .segments.saldo import HKSAL5, HKSAL6, HKSAL7 from .segments.statement import HKKAZ5, HKKAZ6, HKKAZ7 from .segments.transfer import HKCCM1, HKCCS1 +from .segments.journal import HKPRO3, HKPRO4 from .types import SegmentSequence from .utils import MT535_Miniparser, Password, mt940_to_array, compress_datablob, decompress_datablob, SubclassesMixin from .parser import FinTS3Serializer @@ -393,6 +394,20 @@ class FinTS3Client: return responses + def get_status_protocol(self): + with self._get_dialog() as dialog: + hkpro = self._find_highest_supported_command(HKPRO3, HKPRO4) + + responses = self._fetch_with_touchdowns( + dialog, + lambda touchdown: hkpro( + touchdown_point=touchdown, + ), + 'HIPRO', + ) + + return responses + def get_communication_endpoints(self): with self._get_dialog() as dialog: hkkom = self._find_highest_supported_command(HKKOM4) diff --git a/fints/segments/__init__.py b/fints/segments/__init__.py index b132b47..2b37951 100644 --- a/fints/segments/__init__.py +++ b/fints/segments/__init__.py @@ -99,6 +99,10 @@ class HIUPD6(FinTS3Segment): allowed_transactions = DataElementGroupField(type=AllowedTransaction, max_count=999, required=False, _d="Erlaubte Geschäftsvorfälle") extension = DataElementField(type='an', max_length=2048, required=False, _d="Erweiterung, kontobezogen") +class ParameterSegment_22(FinTS3Segment): + max_number_tasks = DataElementField(type='num', max_length=3, _d="Maximale Anzahl Aufträge") + min_number_signatures = DataElementField(type='num', length=1, _d="Anzahl Signaturen mindestens") + class ParameterSegment(FinTS3Segment): max_number_tasks = DataElementField(type='num', max_length=3, _d="Maximale Anzahl Aufträge") min_number_signatures = DataElementField(type='num', length=1, _d="Anzahl Signaturen mindestens") @@ -165,5 +169,5 @@ class HIKOM4(FinTS3Segment): communication_parameters = DataElementGroupField(type=CommunicationParameter2, min_count=1, max_count=9, _d="Kommunikationsparameter") from . import ( - accounts, auth, debit, depot, dialog, message, saldo, statement, transfer, + accounts, auth, debit, depot, dialog, message, saldo, statement, transfer, journal, ) -- 2.47.2