suna/backend/flags/api.py

33 lines
946 B
Python
Raw Normal View History

2025-06-05 16:24:58 +08:00
from fastapi import APIRouter
2025-06-05 15:30:44 +08:00
from utils.logger import logger
2025-06-05 19:46:34 +08:00
from .flags import list_flags, is_enabled, get_flag_details
2025-06-05 15:30:44 +08:00
router = APIRouter()
2025-06-05 19:33:08 +08:00
2025-06-05 15:30:44 +08:00
@router.get("/feature-flags")
2025-06-05 16:24:58 +08:00
async def get_feature_flags():
2025-06-05 15:30:44 +08:00
try:
flags = await list_flags()
return {"flags": flags}
except Exception as e:
logger.error(f"Error fetching feature flags: {str(e)}")
return {"flags": {}}
@router.get("/feature-flags/{flag_name}")
2025-06-05 16:24:58 +08:00
async def get_feature_flag(flag_name: str):
2025-06-05 15:30:44 +08:00
try:
enabled = await is_enabled(flag_name)
details = await get_flag_details(flag_name)
return {
"flag_name": flag_name,
"enabled": enabled,
"details": details
}
except Exception as e:
logger.error(f"Error fetching feature flag {flag_name}: {str(e)}")
return {
"flag_name": flag_name,
"enabled": False,
"details": None
}