completed check for one

This commit is contained in:
Jun-te Kim 2025-11-27 16:14:27 +00:00
parent 995a5e353d
commit 07c6d5e7aa
2 changed files with 54 additions and 9 deletions

View file

@ -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}"
)

View file

@ -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: