mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
trigger pashub to ara lambda if necessary
This commit is contained in:
parent
36aaabb3cf
commit
f572dfd2b3
1 changed files with 31 additions and 0 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue