Model/backend/app/bulk_uploads/router.py
2026-04-21 13:00:33 +00:00

38 lines
1.2 KiB
Python

import boto3
from uuid import UUID
from fastapi import APIRouter, Depends, HTTPException, Query
from sqlmodel import select
from backend.app.dependencies import validate_token
from backend.app.config import get_settings
from backend.app.db.connection import get_db_session
from backend.app.db.models.bulk_address_uploads import BulkAddressUpload
from backend.app.bulk_uploads.schema import PostcodeSplitterTriggerRequest
router = APIRouter(
prefix="/bulk-uploads",
tags=["bulk-uploads"],
dependencies=[Depends(validate_token)],
)
@router.post("/trigger-postcode-splitter", status_code=202)
async def trigger_postcode_splitter(req: PostcodeSplitterTriggerRequest):
settings = get_settings()
try:
sqs = boto3.client("sqs", settings.AWS_DEFAULT_REGION)
response = sqs.send_message(
QueueUrl=settings.POSTCODE_SPLITTER_SQS_URL,
MessageBody=req.model_dump_json(),
)
except Exception as e:
raise HTTPException(status_code=500, detail=f"SQS error: {e}")
return {
"task_id": req.task_id,
"sub_task_id": req.sub_task_id,
"sqs_message_id": response.get("MessageId"),
}