diff --git a/etl/hubspot/scripts/scraper/main.py b/etl/hubspot/scripts/scraper/main.py index 5d5b2b26..18e425a4 100644 --- a/etl/hubspot/scripts/scraper/main.py +++ b/etl/hubspot/scripts/scraper/main.py @@ -1,3 +1,5 @@ +import json +import boto3 from typing import Any, Dict, Optional from etl.hubspot.hubspotClient import HubspotClient @@ -8,6 +10,9 @@ from etl.hubspot.hubspot_trigger_orchestrator_trigger_request import ( ) from backend.utils.subtasks import task_handler from backend.app.db.models.hubspot_deal_data import HubspotDealData +from utils.logger import setup_logger + +logger = setup_logger() @task_handler() @@ -15,6 +20,9 @@ def handler(body: dict[str, Any], context: Any) -> None: db_client = HubspotDataToDb() hubspot_client = HubspotClient() + sqs_client = boto3.client("sqs") + PASHUB_TRIGGER_QUEUE_URL = "pashub_to_ara-queue-dev" # TODO: get from env var + payload = HubspotTriggerOrchestratorTriggerRequest.model_validate(body) hubspot_deal_id: str = payload.hubspot_deal_id @@ -40,6 +48,9 @@ def handler(body: dict[str, Any], context: Any) -> None: db_client.upsert_deal(hubspot_deal, company, listing, hubspot_client) return + deal_unchanged = True + + # Deal already in db, check whether anything has changed if HubspotDealDiffer.check_for_db_update_trigger( new_deal=hubspot_deal, new_company=company, @@ -53,6 +64,9 @@ def handler(body: dict[str, Any], context: Any) -> None: hs_company_id=company, hs_listing=listing, ) + deal_unchanged = False + + if deal_unchanged: return # ============================== @@ -62,4 +76,21 @@ def handler(body: dict[str, Any], context: Any) -> None: new_deal=hubspot_deal, old_deal=db_deal ): # TODO: trigger pashub file fetcher + message_body: Dict[str, Optional[str]] = { + "pashub_link": hubspot_deal["pashub_link"], + "address": None, # can we get this? + "sharepoint_link": hubspot_deal["sharepoint_link"], + "uprn": hubspot_deal["national_uprn"], + "landlord_property_id": hubspot_deal["owner_property_id"], + "deal_stage": hubspot_deal["deal_stage"], + } + + response = sqs_client.send_message( + QueueUrl=PASHUB_TRIGGER_QUEUE_URL, MessageBody=json.dumps(message_body) + ) + + logger.info( + f"Sent message to Pashub To Ara queue. MessageId: {response['MessageId']}" + ) + return