From b657117f199cce26e6ada5f650d23cff2001c927 Mon Sep 17 00:00:00 2001 From: Daniel Roth Date: Thu, 4 Jun 2026 09:33:07 +0000 Subject: [PATCH] =?UTF-8?q?SharePoint=20upload=20is=20skipped=20when=20cli?= =?UTF-8?q?ent=20is=20None=20=F0=9F=9F=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/pashub_fetcher/handler/handler.py | 14 ++++++++++---- backend/pashub_fetcher/pashub_service.py | 5 +++-- .../pashub_to_ara_trigger_request.py | 2 ++ .../pashub_fetcher/trigger_pashub_sqs_from_file.py | 5 ++++- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/backend/pashub_fetcher/handler/handler.py b/backend/pashub_fetcher/handler/handler.py index 626ce59d..00f0ddea 100644 --- a/backend/pashub_fetcher/handler/handler.py +++ b/backend/pashub_fetcher/handler/handler.py @@ -40,10 +40,6 @@ def handler(body: Dict[str, Any], context: Any) -> List[str]: if (not pashub_email) or (not pashub_password): raise ValueError("Pas Hub credentials not provided") - sharepoint_client = DomnaSharepointClient( - sharepoint_location=DomnaSites.SOCIAL_HOUSING_WAVE_3 - ) - if coordination_hub_email and coordination_hub_password: _coord_email, _coord_password = ( coordination_hub_email, @@ -57,6 +53,16 @@ def handler(body: Dict[str, Any], context: Any) -> List[str]: payload = PashubToAraTriggerRequest.model_validate(body) logger.debug("Successfully validated request body") + sharepoint_client: Optional[DomnaSharepointClient] = None + if payload.sharepoint_site is not None: + try: + resolved_site = DomnaSites[payload.sharepoint_site] + sharepoint_client = DomnaSharepointClient(sharepoint_location=resolved_site) + except KeyError: + logger.warning( + f"Unrecognised sharepoint_site '{payload.sharepoint_site}'; skipping SharePoint upload" + ) + service = PashubService( pashub_client=get_pashub_client(pashub_email, pashub_password), sharepoint_client=sharepoint_client, diff --git a/backend/pashub_fetcher/pashub_service.py b/backend/pashub_fetcher/pashub_service.py index 2b7a7f03..86a553f0 100644 --- a/backend/pashub_fetcher/pashub_service.py +++ b/backend/pashub_fetcher/pashub_service.py @@ -38,7 +38,7 @@ class PashubService: def __init__( self, pashub_client: PashubClient, - sharepoint_client: DomnaSharepointClient, + sharepoint_client: Optional[DomnaSharepointClient], s3_bucket: str, coordination_client_factory: Optional[Callable[[], PashubClient]] = None, ) -> None: @@ -111,7 +111,7 @@ class PashubService: default_file_type=FileTypeEnum.OTHER.value, ) - if request.sharepoint_link and request.address: + if self._sharepoint_client and request.sharepoint_link and request.address: folder_name = request.address.split("|")[0].strip() folders = self._sharepoint_client.get_folders_in_path(request.sharepoint_link) match = next( @@ -207,6 +207,7 @@ class PashubService: property_folder_path: str, files: List[DownloadedFile], ) -> None: + assert self._sharepoint_client is not None for df in files: filename = os.path.basename(df.file_path) try: diff --git a/backend/pashub_fetcher/pashub_to_ara_trigger_request.py b/backend/pashub_fetcher/pashub_to_ara_trigger_request.py index 5f6ce37d..d747a388 100644 --- a/backend/pashub_fetcher/pashub_to_ara_trigger_request.py +++ b/backend/pashub_fetcher/pashub_to_ara_trigger_request.py @@ -14,6 +14,8 @@ class PashubToAraTriggerRequest(BaseModel): hubspot_listing_id: Optional[int] = None hubspot_deal_id: Optional[str] = None + sharepoint_site: Optional[str] = None + get_other_files: bool = False @property diff --git a/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py b/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py index fe3ec7d8..d6736eda 100644 --- a/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py +++ b/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py @@ -53,9 +53,11 @@ EXCEL_PATH: str = os.path.join( ) SHAREPOINT_PROPERTIES_FOLDER: str = ( - "https://domnagroup.sharepoint.com/:f:/s/ECO/IgCCLUg3PJ-eS7BLDAwiNlelAW_WXLCb9wcjkigbLfHhPOY?e=DTbNNv" + "Housing Associations/- Client Shared Folders/Abri/Abri Property Folders (Full PAS Info)" ) +SHAREPOINT_SITE: str = "ECO" + def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]: wb = load_workbook(excel_path, data_only=True) @@ -104,6 +106,7 @@ def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]: address=address, deal_stage=deal_stage, sharepoint_link=SHAREPOINT_PROPERTIES_FOLDER or None, + sharepoint_site=SHAREPOINT_SITE, ) )