| import os |
|
|
| from fastapi import APIRouter, Depends, HTTPException |
|
|
| from app.core.auth import verify_app_key |
| from app.core.config import config |
| from app.core.storage import get_storage, LocalStorage, RedisStorage, SQLStorage |
|
|
| router = APIRouter() |
|
|
|
|
| @router.get("/verify", dependencies=[Depends(verify_app_key)]) |
| async def admin_verify(): |
| """验证后台访问密钥(app_key)""" |
| return {"status": "success"} |
|
|
|
|
| @router.get("/config", dependencies=[Depends(verify_app_key)]) |
| async def get_config(): |
| """获取当前配置""" |
| |
| return config._config |
|
|
|
|
| @router.post("/config", dependencies=[Depends(verify_app_key)]) |
| async def update_config(data: dict): |
| """更新配置""" |
| try: |
| await config.update(data) |
| return {"status": "success", "message": "配置已更新"} |
| except Exception as e: |
| raise HTTPException(status_code=500, detail=str(e)) |
|
|
|
|
| @router.get("/storage", dependencies=[Depends(verify_app_key)]) |
| async def get_storage(): |
| """获取当前存储模式""" |
| storage_type = os.getenv("SERVER_STORAGE_TYPE", "").lower() |
| if not storage_type: |
| storage = get_storage() |
| if isinstance(storage, LocalStorage): |
| storage_type = "local" |
| elif isinstance(storage, RedisStorage): |
| storage_type = "redis" |
| elif isinstance(storage, SQLStorage): |
| storage_type = { |
| "mysql": "mysql", |
| "mariadb": "mysql", |
| "postgres": "pgsql", |
| "postgresql": "pgsql", |
| "pgsql": "pgsql", |
| }.get(storage.dialect, storage.dialect) |
| return {"type": storage_type or "local"} |
|
|