mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-30 13:10:47 +00:00
add task handler decorator back to handler
This commit is contained in:
parent
ed885a6ab3
commit
f0d3ea3707
2 changed files with 28 additions and 42 deletions
|
|
@ -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__":
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue