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
|
|
|
|
}
|