feat(h005): support BTD download orders with service params and date range - #52
Merged
Conversation
uwemaurer
commented
Aug 24, 2026
Collaborator
- feat(h005): support BTD download orders with service params and date range
- fix(h005): validate download arguments before any bank contact, use LocalDate
…range Downloads sent the 3-letter order code as AdminOrderType with empty StandardOrderParams, which EBICS 3.0 banks reject for customer data. This mirrors the existing BTU upload path: optional EbicsDownloadParams produce AdminOrderType=BTD with a BTDOrderParams/Service block, container type and an optional DateRange. Also fixes the date range that fetchFile(file, orderType, start, end) accepted and dropped: without a service name the legacy order type is kept and the range goes into StandardOrderParams. Behaviour without params is unchanged. Dates are written as plain xs:date; passing a Calendar made XMLBeans append the local offset (2026-08-10+02:00), which shifts the reported day for a bank in another timezone. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
…ocalDate Review round 1 on the BTD download support. - Reject a partial or reversed date range in the EbicsDownloadParams constructor, the one place every caller passes through. A half range used to be dropped when the request was built, on the launcher's legacy path without even a warning; a reversed range is schema-valid and comes back as EBICS_NO_DOWNLOAD_DATA_AVAILABLE, indistinguishable from a genuinely empty period. - Check every launcher argument before the first environment read, keystore access or bank call. It ran after loadUser/createUser and after --ini/--hia/--hpb, so an incomplete --btd order could still fire an INI request first, and INI is one-shot at most banks. - Carry the report period as LocalDate instead of Date. A calendar day read out of an instant depends on the machine's timezone: a UTC-midnight Date becomes the previous day west of UTC. The Date-taking overloads are kept and now document that. Adds createDateRange(LocalDate, LocalDate). - Upper-case the EBICS code list values (--service, --scope, --option, --container) so --container zip no longer aborts. Message names such as camt.053 stay as given. Tests 31 -> 36. New guards were each seen failing first. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.