67 lines
1.9 KiB
Python
67 lines
1.9 KiB
Python
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.common.db.session import get_db
|
|
from app.common.responses.api_response import success_response
|
|
from app.common.security.deps import require_admin_permission
|
|
from app.modules.providers.schema import ProviderAccountPayload, ProviderModelPayload
|
|
from app.modules.providers.service import ProvidersService
|
|
|
|
|
|
router = APIRouter(prefix="/api/v1/admin", tags=["admin-providers"])
|
|
|
|
|
|
@router.get("/provider-accounts")
|
|
def list_provider_accounts(
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).list_accounts())
|
|
|
|
|
|
@router.post("/provider-accounts")
|
|
def create_provider_account(
|
|
payload: ProviderAccountPayload,
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).create_account(payload))
|
|
|
|
|
|
@router.put("/provider-accounts/{account_id}")
|
|
def update_provider_account(
|
|
account_id: int,
|
|
payload: ProviderAccountPayload,
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).update_account(account_id, payload))
|
|
|
|
|
|
@router.get("/provider-models")
|
|
def list_provider_models(
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).list_models())
|
|
|
|
|
|
@router.post("/provider-models")
|
|
def create_provider_model(
|
|
payload: ProviderModelPayload,
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).create_model(payload))
|
|
|
|
|
|
@router.put("/provider-models/{model_id}")
|
|
def update_provider_model(
|
|
model_id: int,
|
|
payload: ProviderModelPayload,
|
|
_=Depends(require_admin_permission()),
|
|
db: Session = Depends(get_db),
|
|
):
|
|
return success_response(ProvidersService(db).update_model(model_id, payload))
|
|
|