48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
from api.fetch_api_data import fetch_api_data
|
|
|
|
from api.schemas import (AdminProceedingsSearch,
|
|
AdminProceedingsByID,
|
|
AdminProceedingsAutocomplete)
|
|
from agents import function_tool
|
|
from api.config import JUSTICE_API_BASE
|
|
|
|
class AdminProceedingsAPI:
|
|
|
|
@function_tool
|
|
async def admin_proceedings(self, params: AdminProceedingsSearch) -> dict:
|
|
"""
|
|
Fetch a list of administrative proceedings from the Justice API with optional filtering.
|
|
Args:
|
|
params (AdminProceedingsSearch): Filtering and pagination parameters.
|
|
Returns:
|
|
dict: A dictionary containing a list of administrative proceedings and related metadata.
|
|
"""
|
|
url = f"{JUSTICE_API_BASE}/v1/spravneKonanie"
|
|
|
|
return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True))
|
|
|
|
@function_tool
|
|
async def admin_proceedings_id(self, params: AdminProceedingsByID) -> dict:
|
|
"""
|
|
Fetch detailed information about a specific administrative proceeding by its identifier.
|
|
Args:
|
|
params (AdminProceedingsByID): Unique identifier of the administrative proceeding.
|
|
Returns:
|
|
dict: Details of the specified administrative proceeding.
|
|
"""
|
|
url = f"{JUSTICE_API_BASE}/v1/spravneKonanie/{params.id}"
|
|
|
|
return await fetch_api_data(icon="✒️", url=url, params={})
|
|
|
|
@function_tool
|
|
async def admin_proceedings_autocomplete(self, params: AdminProceedingsAutocomplete) -> dict:
|
|
"""
|
|
Fetch autocomplete suggestions for administrative proceeding search terms.
|
|
Args:
|
|
params (AdminProceedingsAutocomplete): Parameters for autocomplete query (e.g., partial text).
|
|
Returns:
|
|
dict: Suggested values matching the input query.
|
|
"""
|
|
url = f"{JUSTICE_API_BASE}/v1/spravneKonanie/autocomplete"
|
|
|
|
return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True)) |