From: Henryk Plötz Date: Sun, 26 Aug 2018 23:54:01 +0000 (+0200) Subject: Implement querying the status protocol X-Git-Tag: v2.0.0~1^2~71 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fdec080979e0b24311a48b2b72bd858e67671960;p=thirdparty%2Fpython-fints.git Implement querying the status protocol --- 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, )