mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
get lookup file bucket and key from payload per message
This commit is contained in:
parent
6dbb8149fd
commit
0e4da14673
3 changed files with 16 additions and 12 deletions
|
|
@ -1,4 +1,5 @@
|
|||
from enum import Enum
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
|
|
@ -12,5 +13,6 @@ class ConditionTriggerRequest(BaseModel):
|
|||
file_type: ConditionFileType
|
||||
trigger_file_bucket: str # TODO: get this from settings
|
||||
trigger_file_key: str
|
||||
uprn_lookup_file_bucket: str # TODO: get this from settings
|
||||
uprn_lookup_file_key: str
|
||||
|
||||
uprn_lookup_file_bucket: Optional[str] = None # TODO: get this from settings
|
||||
uprn_lookup_file_key: Optional[str] = None
|
||||
|
|
|
|||
|
|
@ -1,11 +1,7 @@
|
|||
import json
|
||||
from typing import Mapping, Any
|
||||
import os
|
||||
|
||||
from io import BytesIO
|
||||
|
||||
from backend.app.config import get_settings
|
||||
|
||||
from backend.condition.condition_trigger_request import ConditionTriggerRequest
|
||||
from backend.condition.lookups.uprn_lookup_s3 import UprnLookupS3
|
||||
from backend.condition.processor import process_file
|
||||
|
|
@ -18,15 +14,19 @@ logger = setup_logger()
|
|||
|
||||
def handler(event: Mapping[str, Any], context: Any) -> None:
|
||||
|
||||
uprn_lookup = UprnLookupS3(
|
||||
bucket="", key=""
|
||||
) # TODO: replace with postgres implementation
|
||||
|
||||
for record in event.get("Records", []):
|
||||
try:
|
||||
body_dict = json.loads(record["body"])
|
||||
payload = ConditionTriggerRequest.model_validate(body_dict)
|
||||
|
||||
if payload.uprn_lookup_file_bucket and payload.uprn_lookup_file_key:
|
||||
uprn_lookup = UprnLookupS3(
|
||||
bucket=payload.uprn_lookup_file_bucket,
|
||||
key=payload.uprn_lookup_file_key,
|
||||
) # TODO: replace with postgres implementation
|
||||
else:
|
||||
uprn_lookup = None
|
||||
|
||||
file_bytes: BytesIO = read_io_from_s3(
|
||||
bucket_name=payload.trigger_file_bucket,
|
||||
file_key=payload.trigger_file_key,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Any, BinaryIO, List
|
||||
from typing import Any, BinaryIO, List, Optional
|
||||
from datetime import datetime
|
||||
|
||||
from backend.condition.condition_trigger_request import ConditionFileType
|
||||
|
|
@ -14,7 +14,9 @@ logger = setup_logger()
|
|||
|
||||
|
||||
def process_file(
|
||||
file_stream: BinaryIO, file_type: ConditionFileType, uprn_lookup: UprnLookup
|
||||
file_stream: BinaryIO,
|
||||
file_type: ConditionFileType,
|
||||
uprn_lookup: Optional[UprnLookup],
|
||||
) -> None:
|
||||
# Instantiation
|
||||
parser: Parser = select_parser(file_type, uprn_lookup)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue