diff --git a/backend/pashub_fetcher/pashub_service.py b/backend/pashub_fetcher/pashub_service.py index 881fc583..2b7a7f03 100644 --- a/backend/pashub_fetcher/pashub_service.py +++ b/backend/pashub_fetcher/pashub_service.py @@ -20,7 +20,6 @@ from backend.pashub_fetcher.pashub_client import ( from backend.pashub_fetcher.pashub_to_ara_trigger_request import ( PashubToAraTriggerRequest, ) -from backend.pashub_fetcher.sharepoint_subfolders import SharepointSubfolders from datatypes.epc.domain.epc_property_data import EpcPropertyData from utils.logger import setup_logger from utils.s3 import upload_file_to_s3 @@ -112,10 +111,18 @@ class PashubService: default_file_type=FileTypeEnum.OTHER.value, ) - # SharePoint upload disabled: pashub sharepoint_link is inconsistent - # (points to property or project unpredictably) - # if request.sharepoint_link: - # self._upload_to_sharepoint(request.sharepoint_link, downloaded.core) + if 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( + (f["name"] for f in folders.get("value", []) if f["name"].lower() == folder_name.lower()), + None, + ) + if match is None: + logger.warning(f"SharePoint folder not found for '{folder_name}' in {request.sharepoint_link}") + else: + property_folder_path = f"{request.sharepoint_link}/{match}" + self._upload_to_sharepoint(property_folder_path, downloaded.core + downloaded.other) for df in downloaded.core + downloaded.other: try: @@ -197,11 +204,12 @@ class PashubService: def _upload_to_sharepoint( self, - sharepoint_link: str, - job_files: List[str], + property_folder_path: str, + files: List[DownloadedFile], ) -> None: - assessment_path = f"{sharepoint_link}/{SharepointSubfolders.ASSESSMENT.value}" - - for file_path in job_files: - filename = file_path.split("/")[-1] - self._sharepoint_client.upload_file(file_path, assessment_path, filename) + for df in files: + filename = os.path.basename(df.file_path) + try: + self._sharepoint_client.upload_file(df.file_path, property_folder_path, filename) + except Exception: + logger.warning(f"Failed to upload {filename} to SharePoint", exc_info=True) diff --git a/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py b/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py index cb6c2ffd..cddd2553 100644 --- a/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py +++ b/backend/pashub_fetcher/trigger_pashub_sqs_from_file.py @@ -52,6 +52,8 @@ EXCEL_PATH: str = os.path.join( "local_run_02-06-2026/NCHA WAVE 3 RAs.xlsx", ) +SHAREPOINT_PROPERTIES_FOLDER: str = "" + def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]: wb = load_workbook(excel_path, data_only=True) @@ -99,6 +101,7 @@ def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]: hubspot_deal_id=hubspot_deal_id, address=address, deal_stage=deal_stage, + sharepoint_link=SHAREPOINT_PROPERTIES_FOLDER or None, ) )