small layout changes, refractoring
This commit is contained in:
61
api_client.py
Normal file
61
api_client.py
Normal file
@@ -0,0 +1,61 @@
|
||||
"""
|
||||
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()
|
||||
Reference in New Issue
Block a user