oprava datumu: prijem data bez zony jako UTC

SDK validuje Post/Patch modely pred odeslanim a u kazde polozky DateTime
vyzaduje Kind == Utc. Datum bez zony, napriklad "2026-08-25", nacetl
Newtonsoft jako Unspecified, takze POST /issued-invoices koncil chybou
"DateTime must be in UTC format" jeste pred volanim iDokladu.

- DateTimeZoneHandling.Utc: hodnota bez zony dostane Kind Utc bez posunu,
  hodnota s offsetem se prepocita do UTC
- ExceptionHandlingMiddleware zachytava IdokladValidationException a vraci
  400 se seznamem vadnych vlastnosti misto prazdne 500

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
JiriUhlir
2026-08-25 10:51:45 +02:00
co-authored by Claude Opus 5
parent 2f3afb6af0
commit 73f01d0228
4 changed files with 95 additions and 3 deletions
+7 -3
View File
@@ -87,6 +87,10 @@ Očekávaný výsledek je HTTP 200 a v logu žádná `NotImplementedException`.
## Poznámka mimo rozsah opravy
Pokud iDoklad vrátí odpověď, kterou SDK neumí zpracovat, vyhodí `IdokladValidationException`.
Ta není potomkem `IdokladBaseException`, takže ji `ExceptionHandlingMiddleware` nezachytí
a request skončí jako neošetřená 500 místo 502. Zjištěno při testu proti falešnému API,
neopravováno, protože to nesouvisí se serializací odpovědí.
Ta není potomkem `IdokladBaseException`, takže ji `ExceptionHandlingMiddleware` nezachytil
a request skončil jako neošetřená 500 místo 502. Zjištěno při testu proti falešnému API,
tehdy neopravováno, protože to nesouvisí se serializací odpovědí.
Doplněno později: tato výjimka se ve skutečnosti vyhazuje hlavně při validaci Post/Patch modelu
před odesláním a způsobovala prázdné 500. Middleware ji nyní zachytává a vrací 400,
viz [datumy-utc.md](datumy-utc.md).