fix: Handle date objects in JSON serialization for KRS audit

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Maciej Pienczyn 2026-01-13 17:05:14 +01:00
parent 3069a232ca
commit fa8645dc26

12
app.py
View File

@ -8783,18 +8783,20 @@ def api_krs_audit_trigger():
audit.pkd_count = 1 if parsed_data.get('pkd_przewazajacy') else 0
audit.pkd_count += len(parsed_data.get('pkd_pozostale', []))
# Convert Decimal values to float for JSON serialization
def decimal_to_float(obj):
# Convert non-JSON-serializable values for JSONB storage
def make_json_serializable(obj):
from decimal import Decimal
if isinstance(obj, Decimal):
return float(obj)
elif isinstance(obj, (datetime, date)):
return obj.isoformat()
elif isinstance(obj, dict):
return {k: decimal_to_float(v) for k, v in obj.items()}
return {k: make_json_serializable(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [decimal_to_float(i) for i in obj]
return [make_json_serializable(i) for i in obj]
return obj
audit.parsed_data = decimal_to_float(parsed_data)
audit.parsed_data = make_json_serializable(parsed_data)
audit.pdf_downloaded_at = datetime.now()
# Update company with parsed data