ai-lawyer-agent/api/tools/courts.py
2026-03-16 03:16:02 +01:00

46 lines
1.7 KiB
Python

from api.fetch_api_data import fetch_api_data
from api.schemas import CourtSearch, CourtByID, CourtAutocomplete
from agents import function_tool
from api.config import JUSTICE_API_BASE
class CourtsAPI:
@function_tool
async def court(self, params: CourtSearch) -> dict:
"""
Fetch a list of courts from the Justice API with optional filtering.
Args:
params (CourtSearch): Filtering and pagination parameters.
Returns:
dict: A dictionary containing a list of courts and related metadata.
"""
url = f"{JUSTICE_API_BASE}/v1/sud"
return await fetch_api_data(icon="🏛️️", url=url, params=params.model_dump(exclude_none=True))
@function_tool
async def court_id(self, params: CourtByID) -> dict:
"""
Fetch detailed information about a specific court by its identifier.
Args:
params (CourtByID): Unique identifier of the court.
Returns:
dict: Details of the specified court.
"""
url = f"{JUSTICE_API_BASE}/v1/sud/{params.id}"
return await fetch_api_data(icon="🏛️️", url=url, params={}, remove_keys=['foto'])
@function_tool
async def court_autocomplete(self, params: CourtAutocomplete) -> dict:
"""
Fetch autocomplete suggestions for court names.
Args:
params (CourtAutocomplete): Parameters for autocomplete.
Returns:
dict: Suggested court names matching the input query.
"""
url = f"{JUSTICE_API_BASE}/v1/sud/autocomplete"
return await fetch_api_data(icon="🏛️️", url=url, params=params.model_dump(exclude_none=True))