From 07c6d5e7aa08dc14158de11e9d27657aba4fe69c Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Thu, 27 Nov 2025 16:14:27 +0000 Subject: [PATCH] completed check for one --- backend/src/dashboard/scripts/quick_one.py | 57 +++++++++++++++++-- .../services/hubspot_client_async.py | 6 +- 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/backend/src/dashboard/scripts/quick_one.py b/backend/src/dashboard/scripts/quick_one.py index 34c8ae8..4a79f31 100644 --- a/backend/src/dashboard/scripts/quick_one.py +++ b/backend/src/dashboard/scripts/quick_one.py @@ -1,6 +1,53 @@ -from dashboard.services.file_manager import FileManager -from dashboard.services.json_reader import jsonReader -s3 = FileManager() +import asyncio +import json +from datetime import datetime -key, path, data = s3.download_and_read_latest() -hubspot_data = jsonReader(data) +from dashboard.services.hubspot_client import Pipeline +from dashboard.services.hubspot_client_async import HubSpotClientAsync +from dashboard.services.file_manager import FileManager + +OUTPUT_FILE = "hubspot_deals.json" + + +async def main(): + hubspot = HubSpotClientAsync() + + # Fetch all deal IDs (but we will take only one) + deals = await hubspot.get_deal_ids_by_pipeline( + Pipeline.OPERATIONS_SOCIAL_HOUSING.value + ) + + if not deals: + print("No deals found.") + return + + # Only take ONE deal + # Just do one + deal_id = deals[0] + print(f"Fetching only deal: {deal_id}") + + try: + data = await hubspot.from_deal_get_info(deal_id) + except Exception as e: + print(f"Error fetching deal {deal_id}: {e}") + return + + # Save result + with open(OUTPUT_FILE, "w") as f: + json.dump([data], f, indent=2) + + print("Done! Saved 1 deal.") + + +if __name__ == "__main__": + asyncio.run(main()) + + fm = FileManager() + timestamp = datetime.utcnow().strftime("%Y%m%d_%H%M%S") + s3_filename = f"hubspot_deals_{timestamp}.json" + + fm.upload_to_s3( + OUTPUT_FILE, + bucket="retrofit-data-dev", + object_name=f"hubspot_insight/{s3_filename}" + ) diff --git a/backend/src/dashboard/services/hubspot_client_async.py b/backend/src/dashboard/services/hubspot_client_async.py index a48748d..ccafdea 100644 --- a/backend/src/dashboard/services/hubspot_client_async.py +++ b/backend/src/dashboard/services/hubspot_client_async.py @@ -137,9 +137,7 @@ class HubSpotClientAsync: company_id = await self.from_deal_get_associated_company_id(deal_id) company_info = await self.get_company_information(company_id) if company_id else {} appointments = await self.from_deal_get_appointments(deal_id) - - - + return { "deal_properties": deal_info, "line_items": line_items, @@ -313,7 +311,7 @@ class HubSpotClientAsync: json_ready_history = [] for entry in history: safe_entry = {} - for key, val in entry.items(): + for key, val in entry.to_dict().items(): if isinstance(val, datetime): safe_entry[key] = val.isoformat() else: