AgentReach-Systems / src /api /outbound_caller.py
MohamedFahim's picture
added
6e74855
Raw
History Blame Contribute Delete
1.29 kB
from fastapi import APIRouter, UploadFile, File , HTTPException, Form
from typing import List , Optional
import asyncio
from src.services.file_proccess import extract_phone_numbers, extract_text_from_file
from src.services.make_call import process_call_list
router = APIRouter()
@router.post("/outbound_caller")
async def outbound_caller(
numbers_list_str: Optional[str] = Form(None),
file: Optional[UploadFile] = File(None),
prompt: str = Form("")
) -> List[dict]:
numbers_list = []
if numbers_list_str:
numbers_list = [i.strip() for i in numbers_list_str.split(",")]
elif file:
text = extract_text_from_file(file)
print("Extracted text from file:\n", text) # Add this
numbers_list = extract_phone_numbers(text)
print("Extracted numbers:", numbers_list)
if not numbers_list:
raise HTTPException(status_code=400, detail="No valid phone numbers found in file")
else:
raise HTTPException(status_code=422, detail="Either 'numbers_list_str' or 'file' is required.")
caller_list = [{"number": number, "prompt": prompt} for number in numbers_list]
# await process_call_list(caller_list)
print(caller_list)
await process_call_list(caller_list)
return caller_list