Source code for mindroot.coreplugins.api_keys.router

from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
from .mod import api_key_manager

router = APIRouter()

[docs] class APIKeyCreate(BaseModel): username: str description: Optional[str] = ""
[docs] class APIKeyResponse(BaseModel): key: str username: str description: str created_at: str
[docs] class APIKeyList(BaseModel): success: bool data: List[APIKeyResponse]
[docs] @router.post("/api_keys/create") async def create_api_key(request: APIKeyCreate): try: key = api_key_manager.create_key( username=request.username, description=request.description ) return {"success": True, "data": key} except Exception as e: raise HTTPException(status_code=500, detail=str(e))
[docs] @router.get("/api_keys/list", response_model=APIKeyList) async def list_api_keys(): try: keys = api_key_manager.list_keys() return {"success": True, "data": keys} except Exception as e: raise HTTPException(status_code=500, detail=str(e))
[docs] @router.delete("/api_keys/delete/{api_key}") async def delete_api_key(api_key: str): try: success = api_key_manager.delete_key(api_key) if success: return {"success": True, "message": "API key deleted successfully"} else: raise HTTPException(status_code=404, detail="API key not found") except Exception as e: raise HTTPException(status_code=500, detail=str(e))