diff --git a/repositories/hubspot_deals/deal_database_postgres_gateway.py b/repositories/hubspot_deals/deal_database_postgres_gateway.py index 56accf947..29c1868ec 100644 --- a/repositories/hubspot_deals/deal_database_postgres_gateway.py +++ b/repositories/hubspot_deals/deal_database_postgres_gateway.py @@ -8,7 +8,9 @@ upserts from HubSpot's client_booking_reference property. from typing import Optional -from sqlmodel import Session +from sqlmodel import Session, select + +from backend.app.db.models.hubspot_deal_data import HubspotDealData class DealDatabasePostgresGateway: @@ -16,7 +18,16 @@ class DealDatabasePostgresGateway: self._session = session def record_job_no(self, deal_id: str, job_no: str) -> None: - raise NotImplementedError + deal = self._find_deal(deal_id) + if deal is None: + raise ValueError(f"HubSpot deal {deal_id} not found") + deal.job_no = job_no + self._session.add(deal) + self._session.commit() def job_no_for_deal(self, deal_id: str) -> Optional[str]: raise NotImplementedError + + def _find_deal(self, deal_id: str) -> Optional[HubspotDealData]: + statement = select(HubspotDealData).where(HubspotDealData.deal_id == deal_id) + return self._session.exec(statement).first()