From 995a5e353d83d00ac0915b77b9c6e24ed5267581 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Thu, 27 Nov 2025 15:54:11 +0000 Subject: [PATCH] test it works for one --- backend/src/dashboard/scripts/quick_one.py | 18 +++++------------- .../dashboard/services/hubspot_client_async.py | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/backend/src/dashboard/scripts/quick_one.py b/backend/src/dashboard/scripts/quick_one.py index 4a89a7c..34c8ae8 100644 --- a/backend/src/dashboard/scripts/quick_one.py +++ b/backend/src/dashboard/scripts/quick_one.py @@ -1,14 +1,6 @@ -#from dashboard.services.file_manager import FileManager -#from dashboard.services.json_reader import jsonReader -#s3 = FileManager() - -#key, path, data = s3.download_and_read_latest() -#hubspot_data = jsonReader(data) - -#df = hubspot_data.generate_df_via_product_type("Empty Cavity - ECO4") - - -#one = df.iloc(0) - -from dashboard.service +from dashboard.services.file_manager import FileManager +from dashboard.services.json_reader import jsonReader +s3 = FileManager() +key, path, data = s3.download_and_read_latest() +hubspot_data = jsonReader(data) diff --git a/backend/src/dashboard/services/hubspot_client_async.py b/backend/src/dashboard/services/hubspot_client_async.py index f5a52e8..a48748d 100644 --- a/backend/src/dashboard/services/hubspot_client_async.py +++ b/backend/src/dashboard/services/hubspot_client_async.py @@ -2,6 +2,8 @@ import logging import asyncio from hubspot.crm.associations import ApiException import hubspot +from datetime import datetime + class HubSpotClientAsync: API_CONCURRENCY = asyncio.Semaphore(5) # globally limit concurrency @@ -298,7 +300,7 @@ class HubSpotClientAsync: return results async def get_expected_commencement_history(self, deal_id: str): - """Fetch historical values for expected_commencement_date.""" + """Fetch JSON-serializable historical values for expected_commencement_date.""" deal = await self._run( self.client.crm.deals.basic_api.get_by_id, deal_id, @@ -306,6 +308,16 @@ class HubSpotClientAsync: properties_with_history=["expected_commencement_date"] ) - return deal.properties_with_history.get("expected_commencement_date", []) - + history = deal.properties_with_history.get("expected_commencement_date", []) + json_ready_history = [] + for entry in history: + safe_entry = {} + for key, val in entry.items(): + if isinstance(val, datetime): + safe_entry[key] = val.isoformat() + else: + safe_entry[key] = val + json_ready_history.append(safe_entry) + + return json_ready_history