62 lines
2.1 KiB
Python
62 lines
2.1 KiB
Python
"""
|
|
API client functions for interacting with the Airport Announcement System backend.
|
|
"""
|
|
import requests
|
|
from typing import List, Optional
|
|
|
|
API_BASE_URL = "http://localhost:7999"
|
|
|
|
def get_groups() -> List[dict]:
|
|
"""Get all endpoint groups."""
|
|
response = requests.get(f"{API_BASE_URL}/groups")
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def get_group(group_id: int) -> Optional[dict]:
|
|
"""Get a specific endpoint group by ID."""
|
|
response = requests.get(f"{API_BASE_URL}/groups/{group_id}")
|
|
if response.status_code == 404:
|
|
return None
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def create_group(group: dict) -> dict:
|
|
"""Create a new endpoint group."""
|
|
response = requests.post(f"{API_BASE_URL}/groups", json=group)
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def update_group(group_id: int, updated_group: dict) -> dict:
|
|
"""Update an existing endpoint group."""
|
|
response = requests.put(f"{API_BASE_URL}/groups/{group_id}", json=updated_group)
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def delete_group(group_id: int) -> None:
|
|
"""Delete an endpoint group."""
|
|
response = requests.delete(f"{API_BASE_URL}/groups/{group_id}")
|
|
response.raise_for_status()
|
|
|
|
def start_announcement(text: str, group_id: int) -> None:
|
|
"""Start a new announcement."""
|
|
response = requests.post(f"{API_BASE_URL}/announcements", params={"text": text, "group_id": group_id})
|
|
response.raise_for_status()
|
|
|
|
def get_announcement_status() -> dict:
|
|
"""Get the status of the current announcement."""
|
|
response = requests.get(f"{API_BASE_URL}/announcements/status")
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def get_available_endpoints() -> List[str]:
|
|
"""Get all available endpoints."""
|
|
response = requests.get(f"{API_BASE_URL}/endpoints")
|
|
response.raise_for_status()
|
|
return response.json()
|
|
|
|
def get_available_languages() -> List[str]:
|
|
"""Get all available languages for announcements."""
|
|
response = requests.get(f"{API_BASE_URL}/languages")
|
|
response.raise_for_status()
|
|
return response.json()
|