rairo commited on
Commit
97ed224
·
verified ·
1 Parent(s): 1a86cf8

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +32 -6
main.py CHANGED
@@ -234,12 +234,38 @@ def generate_sozo_report(project_id):
234
 
235
  logger.info(f"Report draft generated for project {project_id}")
236
 
237
- update_data = {
238
- 'status': 'draft',
239
- 'rawMarkdown': draft_data['raw_md'],
240
- 'chartUrls': draft_data['chartUrls']
241
- }
242
- project_ref.update(update_data)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
 
244
  logger.info(f"Project {project_id} updated with draft data")
245
 
 
234
 
235
  logger.info(f"Report draft generated for project {project_id}")
236
 
237
+ # Clean and validate data before updating Firebase
238
+ try:
239
+ # Ensure rawMarkdown is a string and handle any encoding issues
240
+ raw_markdown = draft_data.get('raw_md', '')
241
+ if raw_markdown:
242
+ # Clean any problematic characters that might cause JSON parsing issues
243
+ raw_markdown = str(raw_markdown).replace('\x00', '').replace('\ufeff', '')
244
+ logger.info(f"Raw markdown length: {len(raw_markdown)}")
245
+
246
+ # Ensure chartUrls is a proper list/dict
247
+ chart_urls = draft_data.get('chartUrls', [])
248
+ if isinstance(chart_urls, (list, dict)):
249
+ logger.info(f"Chart URLs count: {len(chart_urls)}")
250
+ else:
251
+ logger.warning(f"Chart URLs is not a list/dict: {type(chart_urls)}")
252
+ chart_urls = []
253
+
254
+ update_data = {
255
+ 'status': 'draft',
256
+ 'rawMarkdown': raw_markdown,
257
+ 'chartUrls': chart_urls
258
+ }
259
+
260
+ logger.info(f"Updating project {project_id} with cleaned data")
261
+ project_ref.update(update_data)
262
+
263
+ except Exception as update_error:
264
+ logger.error(f"Error preparing update data for project {project_id}: {str(update_error)}")
265
+ logger.error(f"Draft data keys: {list(draft_data.keys()) if draft_data else 'None'}")
266
+ logger.error(f"Raw markdown type: {type(draft_data.get('raw_md'))}")
267
+ logger.error(f"Chart URLs type: {type(draft_data.get('chartUrls'))}")
268
+ raise update_error
269
 
270
  logger.info(f"Project {project_id} updated with draft data")
271