Files
mkt.ose.tw/backend/app/api/admin/sdk_configs.py
2026-03-23 20:23:58 +08:00

35 lines
1.3 KiB
Python

from fastapi import APIRouter, Depends, HTTPException, status
from app.api.dependencies.auth import get_access_token
from app.api.dependencies.permissions import require_permission
from app.application.admin.sdk_configs import SdkConfigService
from app.schemas.auth import AuthenticatedUser
from app.schemas.admin import SdkConfigListResponse, SdkConfigRead
router = APIRouter()
service = SdkConfigService()
@router.get("", response_model=SdkConfigListResponse)
async def list_sdk_configs(
access_token: str = Depends(get_access_token),
_: AuthenticatedUser = Depends(require_permission("can_manage_sdk_configs")),
) -> SdkConfigListResponse:
items = await service.list_sdk_configs(access_token=access_token)
return SdkConfigListResponse(items=items)
@router.get("/{sdk_config_id}", response_model=SdkConfigRead)
async def get_sdk_config(
sdk_config_id: str,
access_token: str = Depends(get_access_token),
_: AuthenticatedUser = Depends(require_permission("can_manage_sdk_configs")),
) -> SdkConfigRead:
item = await service.get_sdk_config(sdk_config_id, access_token=access_token)
if not item:
raise HTTPException(
status_code=status.HTTP_404_NOT_FOUND,
detail=f"SDK config '{sdk_config_id}' not found.",
)
return item