mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
SharePoint upload is skipped when client is None 🟩
This commit is contained in:
parent
416dac0512
commit
db2cbc9c57
4 changed files with 19 additions and 7 deletions
|
|
@ -40,10 +40,6 @@ def handler(body: Dict[str, Any], context: Any) -> List[str]:
|
||||||
if (not pashub_email) or (not pashub_password):
|
if (not pashub_email) or (not pashub_password):
|
||||||
raise ValueError("Pas Hub credentials not provided")
|
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:
|
if coordination_hub_email and coordination_hub_password:
|
||||||
_coord_email, _coord_password = (
|
_coord_email, _coord_password = (
|
||||||
coordination_hub_email,
|
coordination_hub_email,
|
||||||
|
|
@ -57,6 +53,16 @@ def handler(body: Dict[str, Any], context: Any) -> List[str]:
|
||||||
payload = PashubToAraTriggerRequest.model_validate(body)
|
payload = PashubToAraTriggerRequest.model_validate(body)
|
||||||
logger.debug("Successfully validated request 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(
|
service = PashubService(
|
||||||
pashub_client=get_pashub_client(pashub_email, pashub_password),
|
pashub_client=get_pashub_client(pashub_email, pashub_password),
|
||||||
sharepoint_client=sharepoint_client,
|
sharepoint_client=sharepoint_client,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class PashubService:
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
pashub_client: PashubClient,
|
pashub_client: PashubClient,
|
||||||
sharepoint_client: DomnaSharepointClient,
|
sharepoint_client: Optional[DomnaSharepointClient],
|
||||||
s3_bucket: str,
|
s3_bucket: str,
|
||||||
coordination_client_factory: Optional[Callable[[], PashubClient]] = None,
|
coordination_client_factory: Optional[Callable[[], PashubClient]] = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|
@ -111,7 +111,7 @@ class PashubService:
|
||||||
default_file_type=FileTypeEnum.OTHER.value,
|
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()
|
folder_name = request.address.split("|")[0].strip()
|
||||||
folders = self._sharepoint_client.get_folders_in_path(request.sharepoint_link)
|
folders = self._sharepoint_client.get_folders_in_path(request.sharepoint_link)
|
||||||
match = next(
|
match = next(
|
||||||
|
|
@ -207,6 +207,7 @@ class PashubService:
|
||||||
property_folder_path: str,
|
property_folder_path: str,
|
||||||
files: List[DownloadedFile],
|
files: List[DownloadedFile],
|
||||||
) -> None:
|
) -> None:
|
||||||
|
assert self._sharepoint_client is not None
|
||||||
for df in files:
|
for df in files:
|
||||||
filename = os.path.basename(df.file_path)
|
filename = os.path.basename(df.file_path)
|
||||||
try:
|
try:
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ class PashubToAraTriggerRequest(BaseModel):
|
||||||
hubspot_listing_id: Optional[int] = None
|
hubspot_listing_id: Optional[int] = None
|
||||||
hubspot_deal_id: Optional[str] = None
|
hubspot_deal_id: Optional[str] = None
|
||||||
|
|
||||||
|
sharepoint_site: Optional[str] = None
|
||||||
|
|
||||||
get_other_files: bool = False
|
get_other_files: bool = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|
|
||||||
|
|
@ -53,9 +53,11 @@ EXCEL_PATH: str = os.path.join(
|
||||||
)
|
)
|
||||||
|
|
||||||
SHAREPOINT_PROPERTIES_FOLDER: str = (
|
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]:
|
def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]:
|
||||||
wb = load_workbook(excel_path, data_only=True)
|
wb = load_workbook(excel_path, data_only=True)
|
||||||
|
|
@ -104,6 +106,7 @@ def _build_requests(excel_path: str) -> list[PashubToAraTriggerRequest]:
|
||||||
address=address,
|
address=address,
|
||||||
deal_stage=deal_stage,
|
deal_stage=deal_stage,
|
||||||
sharepoint_link=SHAREPOINT_PROPERTIES_FOLDER or None,
|
sharepoint_link=SHAREPOINT_PROPERTIES_FOLDER or None,
|
||||||
|
sharepoint_site=SHAREPOINT_SITE,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue