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
import json
import os
import re
from typing import Any, Dict, List, Mapping, Optional
from typing import Any, Dict, List, Optional
from openpyxl import load_workbook
from backend.app.config import get_settings
@ -178,9 +177,9 @@ def process_job(
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(f"Number of events: {len(event.get('Records', []))}")
settings = get_settings()
@ -196,48 +195,34 @@ def handler(event: Mapping[str, Any], context: Any) -> None:
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:
body_dict = json.loads(record["body"])
logger.debug("Validating request body")
try:
files: List[str] = process_job(
payload,
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:
files: List[str] = process_job(
payload,
pashub_client,
sharepoint_client,
)
saved_file_paths.extend(files)
logger.info(f"Saved {len(files)} files")
except UnauthorizedError:
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")
return files
if __name__ == "__main__":

View file

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