add task handler decorator back to handler

This commit is contained in:
Daniel Roth 2026-04-17 11:19:20 +00:00
parent ed885a6ab3
commit f0d3ea3707
2 changed files with 28 additions and 42 deletions

View file

@ -1,8 +1,7 @@
from datetime import datetime, timezone from datetime import datetime, timezone
import json
import os import os
import re import re
from typing import Any, Dict, List, Mapping, Optional from typing import Any, Dict, List, Optional
from openpyxl import load_workbook from openpyxl import load_workbook
from backend.app.config import get_settings from backend.app.config import get_settings
@ -178,9 +177,9 @@ def process_job(
return job_files return job_files
def handler(event: Mapping[str, Any], context: Any) -> None: @task_handler()
def handler(body: Dict[str, Any], context: Any) -> List[str]:
logger.info("Received message") logger.info("Received message")
logger.info(f"Number of events: {len(event.get('Records', []))}")
settings = get_settings() settings = get_settings()
@ -196,48 +195,34 @@ def handler(event: Mapping[str, Any], context: Any) -> None:
sharepoint_location=DomnaSites.SOCIAL_HOUSING_WAVE_3 sharepoint_location=DomnaSites.SOCIAL_HOUSING_WAVE_3
) )
saved_file_paths: List[str] = [] logger.debug("Validating request body")
payload = PashubToAraTriggerRequest.model_validate(body)
logger.debug("Successfully validated request body")
for record in event.get("Records", []): try:
try: files: List[str] = process_job(
body_dict = json.loads(record["body"]) payload,
logger.debug("Validating request body") pashub_client,
sharepoint_client,
)
except UnauthorizedError:
logger.warning("Token expired - refreshing")
payload = PashubToAraTriggerRequest.model_validate(body_dict) pashub_client = get_pashub_client(
pas_hub_email,
pas_hub_password,
)
logger.debug("Successfully validated request body") # retry once
files = process_job(
payload,
pashub_client,
sharepoint_client,
)
try: logger.info(f"Saved {len(files)} files")
files: List[str] = process_job(
payload,
pashub_client,
sharepoint_client,
)
saved_file_paths.extend(files)
except UnauthorizedError: return files
logger.warning("Token expired - refreshing")
pashub_client = get_pashub_client(
pas_hub_email,
pas_hub_password,
)
# retry once
files: List[str] = process_job(
payload,
pashub_client,
sharepoint_client,
)
saved_file_paths.extend(files)
except Exception as e:
logger.info("Handler exception")
logger.error(f"Failed to process record: {e}")
logger.info("Successfully loaded jobs from spreadsheet")
logger.info(f"Saved {len(saved_file_paths)} files")
if __name__ == "__main__": if __name__ == "__main__":

View file

@ -12,7 +12,8 @@ payload = {
{ {
"body": json.dumps( "body": json.dumps(
{ {
"uprn": 123456, "pashub_link": "https://pashub.net/jobs/00000000-0000-0000-0000-000000000000/details",
"uprn": "123456",
} }
) )
} }