mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
adjust local runner
This commit is contained in:
parent
72ccb7c19d
commit
f468738510
3 changed files with 55 additions and 14 deletions
|
|
@ -1,7 +1,10 @@
|
|||
import base64
|
||||
import os
|
||||
from datetime import datetime, timezone
|
||||
from typing import List, NamedTuple, Optional, cast
|
||||
|
||||
import requests
|
||||
|
||||
from backend.app.db.connection import db_session
|
||||
from backend.app.db.models.uploaded_file import (
|
||||
FileSourceEnum,
|
||||
|
|
@ -20,6 +23,7 @@ from datatypes.epc.domain.epc_property_data import EpcPropertyData
|
|||
from utils.logger import setup_logger
|
||||
from utils.s3 import upload_file_to_s3
|
||||
from utils.sharepoint.domna_sharepoint_client import DomnaSharepointClient
|
||||
from utils.sharepoint.sharepoint_client import SharePointClient
|
||||
|
||||
logger = setup_logger()
|
||||
|
||||
|
|
@ -146,12 +150,34 @@ class PashubService:
|
|||
f"Failed to parse site notes {record.file_path}", exc_info=True
|
||||
)
|
||||
|
||||
def _resolve_sharepoint_sharing_link(self, sharing_url: str) -> str:
|
||||
encoded = base64.urlsafe_b64encode(sharing_url.encode()).rstrip(b"=").decode()
|
||||
share_id = f"u!{encoded}"
|
||||
|
||||
sp = SharePointClient(
|
||||
tenant_id=os.getenv("SHAREPOINT_TENANT_ID"),
|
||||
client_id=os.getenv("SHAREPOINT_CLIENT_ID"),
|
||||
client_secret=os.getenv("SHAREPOINT_CLIENT_SECRET"),
|
||||
site_id=self._sharepoint_client.sharepoint_drive.value,
|
||||
)
|
||||
|
||||
r = requests.get(
|
||||
f"https://graph.microsoft.com/v1.0/shares/{share_id}/driveItem",
|
||||
params={"$select": "name,parentReference"},
|
||||
headers=sp.headers,
|
||||
)
|
||||
r.raise_for_status()
|
||||
data = r.json()
|
||||
parent_path = data["parentReference"]["path"].split("root:/", 1)[1]
|
||||
return f"{parent_path}/{data['name']}"
|
||||
|
||||
def _upload_to_sharepoint(
|
||||
self,
|
||||
sharepoint_link: str,
|
||||
job_files: List[str],
|
||||
) -> None:
|
||||
assessment_path = f"{sharepoint_link}/{SharepointSubfolders.ASSESSMENT.value}"
|
||||
resolved_path = self._resolve_sharepoint_sharing_link(sharepoint_link)
|
||||
assessment_path = f"{resolved_path}/2. RA Coordinator Info"
|
||||
|
||||
for file_path in job_files:
|
||||
filename = file_path.split("/")[-1]
|
||||
|
|
|
|||
|
|
@ -17,10 +17,12 @@ def get_token_from_local_storage(
|
|||
|
||||
browser = p.chromium.launch(
|
||||
headless=True,
|
||||
env={"DISPLAY": ""},
|
||||
args=[
|
||||
"--no-sandbox",
|
||||
"--disable-dev-shm-usage",
|
||||
"--disable-gpu",
|
||||
"--disable-vulkan",
|
||||
"--single-process",
|
||||
"--no-zygote",
|
||||
],
|
||||
|
|
|
|||
|
|
@ -10,17 +10,16 @@ from backend.pashub_fetcher.pashub_to_ara_trigger_request import (
|
|||
)
|
||||
from backend.pashub_fetcher.handler.handler import handler
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
|
||||
filepath: str = os.path.join(
|
||||
BASE_DIR,
|
||||
"pashub_fetcher",
|
||||
"The_Guinness_Partnership_AtkinsR_alis_Coordination_Design_Board_1774881298.xlsx",
|
||||
"NCHA_SHDF_Wave_3_Main_Operation_Board_PASHUB RAs.xlsx",
|
||||
)
|
||||
|
||||
wb = load_workbook(filepath, data_only=True)
|
||||
ws = wb["filtered_2"]
|
||||
ws = wb["filtered"]
|
||||
|
||||
HEADER_ROW = 3
|
||||
|
||||
|
|
@ -30,18 +29,27 @@ if __name__ == "__main__":
|
|||
if value:
|
||||
headers[value.strip()] = col
|
||||
|
||||
name_col = headers["Name"]
|
||||
link_col = headers["PasHub Link"]
|
||||
hubspot_deal_id_col = headers["HubSpot ID"]
|
||||
name_col = headers.get("Name")
|
||||
link_col = headers.get("PasHub Link")
|
||||
hubspot_deal_id_col = headers.get("HubSpot ID")
|
||||
sharepoint_link_col = headers.get("Sharepoint")
|
||||
|
||||
trigger_requests: List[PashubToAraTriggerRequest] = []
|
||||
|
||||
for row in range(HEADER_ROW + 1, ws.max_row + 1):
|
||||
name = ws.cell(row=row, column=name_col).value
|
||||
link = ws.cell(row=row, column=link_col).value
|
||||
hubspot_deal_id = ws.cell(row=row, column=hubspot_deal_id_col).value
|
||||
|
||||
if not name or not link or not hubspot_deal_id:
|
||||
name = ws.cell(row=row, column=name_col).value if name_col else None
|
||||
link = ws.cell(row=row, column=link_col).value if link_col else None
|
||||
hubspot_deal_id = (
|
||||
ws.cell(row=row, column=hubspot_deal_id_col).value
|
||||
if hubspot_deal_id_col
|
||||
else None
|
||||
)
|
||||
sharepoint_link = (
|
||||
ws.cell(row=row, column=sharepoint_link_col).value
|
||||
if sharepoint_link_col
|
||||
else None
|
||||
)
|
||||
if not name or not link:
|
||||
continue
|
||||
|
||||
match = re.search(r"/jobs/([0-9a-fA-F\-]+)/", str(link))
|
||||
|
|
@ -50,13 +58,18 @@ if __name__ == "__main__":
|
|||
|
||||
trigger_requests.append(
|
||||
PashubToAraTriggerRequest(
|
||||
pashub_link=str(link), hubspot_deal_id=str(hubspot_deal_id)
|
||||
pashub_link=str(link),
|
||||
hubspot_deal_id=str(hubspot_deal_id),
|
||||
sharepoint_link=str(sharepoint_link),
|
||||
)
|
||||
)
|
||||
|
||||
# ---- Build fake SQS event ----
|
||||
event: Dict[str, Any] = {
|
||||
"Records": [{"body": json.dumps(req.model_dump())} for req in trigger_requests]
|
||||
"Records": [
|
||||
{"body": json.dumps(req.model_dump()), "messageId": str(i)}
|
||||
for i, req in enumerate(trigger_requests)
|
||||
]
|
||||
}
|
||||
|
||||
context = None
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue