|
|
from fastapi import APIRouter |
|
|
from utils.logger import logger |
|
|
from .flags import list_flags, is_enabled, get_flag_details |
|
|
|
|
|
router = APIRouter() |
|
|
|
|
|
|
|
|
@router.get("/feature-flags") |
|
|
async def get_feature_flags(): |
|
|
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}") |
|
|
async def get_feature_flag(flag_name: str): |
|
|
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 |
|
|
} |