31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
"""Administrator-only risk-model configuration endpoints."""
|
|
|
|
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, Depends
|
|
|
|
from app.api.dependencies import DatabaseSession, require_permission
|
|
from app.models.entities import UserAccount
|
|
from app.schemas.common import ApiResponse
|
|
from app.schemas.model_config import ModelWeightConfigData, ModelWeightConfigUpdate
|
|
from app.services.model_config import ModelConfigService
|
|
|
|
router = APIRouter(prefix="/model-config", tags=["model-config"])
|
|
|
|
|
|
@router.get("", response_model=ApiResponse[ModelWeightConfigData])
|
|
async def get_model_config(
|
|
session: DatabaseSession,
|
|
_current_user: Annotated[UserAccount, Depends(require_permission("model_weight.manage"))],
|
|
) -> ApiResponse[ModelWeightConfigData]:
|
|
return ApiResponse(data=await ModelConfigService(session).get())
|
|
|
|
|
|
@router.patch("", response_model=ApiResponse[ModelWeightConfigData])
|
|
async def update_model_config(
|
|
payload: ModelWeightConfigUpdate,
|
|
session: DatabaseSession,
|
|
current_user: Annotated[UserAccount, Depends(require_permission("model_weight.manage", operate=True))],
|
|
) -> ApiResponse[ModelWeightConfigData]:
|
|
return ApiResponse(data=await ModelConfigService(session).update(payload, current_user))
|