trigger pashub to ara lambda if necessary

This commit is contained in:
Daniel Roth 2026-04-09 12:53:48 +00:00
parent 36aaabb3cf
commit f572dfd2b3

View file

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