Trigger pashub lambda when neal deal inserted, if pashub_link is set

This commit is contained in:
Daniel Roth 2026-04-14 10:04:45 +00:00
parent 92febe7492
commit 03595d8473

View file

@ -22,7 +22,6 @@ def handler(body: dict[str, Any], context: Any) -> None:
hubspot_client = HubspotClient()
sqs_client = boto3.client("sqs")
PASHUB_TRIGGER_QUEUE_URL = get_settings().PASHUB_TO_ARA_SQS_URL
payload = HubspotTriggerOrchestratorTriggerRequest.model_validate(body)
hubspot_deal_id: str = payload.hubspot_deal_id
@ -41,7 +40,6 @@ def handler(body: dict[str, Any], context: Any) -> None:
deal_changed = False
if not db_deal:
# New hubspot deal, no diffing to do
logger.info(f"New HubSpot deal of ID {hubspot_deal_id}. Loading to database...")
if company:
company_data: CompanyData = hubspot_client.get_company_information(company)
@ -49,6 +47,15 @@ def handler(body: dict[str, Any], context: Any) -> None:
db_client.upsert_organisation(company_data)
db_client.upsert_deal(hubspot_deal, company, listing, hubspot_client)
# ==============================
# Orchestration of other lambdas
# ==============================
if hubspot_deal["pashub_link"]:
logger.info(
f"Triggering Pas Hub file fetcher for HubSpot deal ID {hubspot_deal_id}"
)
_trigger_pashub_fetcher(sqs_client, hubspot_deal)
else:
# Deal already in db, check whether anything has changed
logger.info(
@ -84,22 +91,7 @@ def handler(body: dict[str, Any], context: Any) -> None:
logger.info(
f"Triggering Pas Hub file fetcher for HubSpot deal ID {hubspot_deal_id}"
)
message_body: Dict[str, Optional[str]] = {
"pashub_link": hubspot_deal["pashub_link"],
"address": None, # potentially available from Listing, leave as None for now
"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']}"
)
_trigger_pashub_fetcher(sqs_client, hubspot_deal)
else:
logger.info(
f"Not Triggering PasHub file fetcher for HubSpot deal ID {hubspot_deal_id}"
@ -108,6 +100,26 @@ def handler(body: dict[str, Any], context: Any) -> None:
print("done")
def _trigger_pashub_fetcher(sqs_client: Any, hubspot_deal: Dict[str, str]) -> None:
message_body: Dict[str, Optional[str]] = {
"pashub_link": hubspot_deal["pashub_link"],
"address": None, # potentially available from Listing, leave as None for now
"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=get_settings().PASHUB_TO_ARA_SQS_URL,
MessageBody=json.dumps(message_body),
)
logger.info(
f"Sent message to Pashub To Ara queue. MessageId: {response['MessageId']}"
)
if __name__ == "__main__":
handler({"hubspot_deal_id": "371470706915"}, "")
print("beep")