103 lines
3.2 KiB
Python
103 lines
3.2 KiB
Python
from fastapi import APIRouter, Depends, HTTPException
|
|
from sqlmodel import Session
|
|
|
|
from core.database import get_session
|
|
from models.bot import BotInstance
|
|
from schemas.bot import (
|
|
BotEnvParamsUpdateRequest,
|
|
BotMcpConfigUpdateRequest,
|
|
BotToolsConfigUpdateRequest,
|
|
ChannelConfigRequest,
|
|
ChannelConfigUpdateRequest,
|
|
)
|
|
from services.bot_config_service import (
|
|
create_bot_channel_config,
|
|
delete_bot_channel_config,
|
|
get_bot_env_params_state,
|
|
get_bot_mcp_config_state,
|
|
get_bot_resources_snapshot,
|
|
get_bot_tools_config_state,
|
|
list_bot_channels_config,
|
|
reject_bot_tools_config_update,
|
|
update_bot_channel_config,
|
|
update_bot_env_params_state,
|
|
update_bot_mcp_config_state,
|
|
)
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/api/bots/{bot_id}/resources")
|
|
def get_bot_resources(bot_id: str, session: Session = Depends(get_session)):
|
|
return get_bot_resources_snapshot(session, bot_id=bot_id)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/channels")
|
|
def list_bot_channels(bot_id: str, session: Session = Depends(get_session)):
|
|
return list_bot_channels_config(session, bot_id=bot_id)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/tools-config")
|
|
def get_bot_tools_config(bot_id: str, session: Session = Depends(get_session)):
|
|
return get_bot_tools_config_state(session, bot_id=bot_id)
|
|
|
|
|
|
@router.put("/api/bots/{bot_id}/tools-config")
|
|
def update_bot_tools_config(
|
|
bot_id: str,
|
|
payload: BotToolsConfigUpdateRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return reject_bot_tools_config_update(session, bot_id=bot_id, payload=payload)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/mcp-config")
|
|
def get_bot_mcp_config(bot_id: str, session: Session = Depends(get_session)):
|
|
return get_bot_mcp_config_state(session, bot_id=bot_id)
|
|
|
|
|
|
@router.put("/api/bots/{bot_id}/mcp-config")
|
|
def update_bot_mcp_config(
|
|
bot_id: str,
|
|
payload: BotMcpConfigUpdateRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return update_bot_mcp_config_state(session, bot_id=bot_id, payload=payload)
|
|
|
|
|
|
@router.get("/api/bots/{bot_id}/env-params")
|
|
def get_bot_env_params(bot_id: str, session: Session = Depends(get_session)):
|
|
return get_bot_env_params_state(session, bot_id=bot_id)
|
|
|
|
|
|
@router.put("/api/bots/{bot_id}/env-params")
|
|
def update_bot_env_params(
|
|
bot_id: str,
|
|
payload: BotEnvParamsUpdateRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return update_bot_env_params_state(session, bot_id=bot_id, payload=payload)
|
|
|
|
|
|
@router.post("/api/bots/{bot_id}/channels")
|
|
def create_bot_channel(
|
|
bot_id: str,
|
|
payload: ChannelConfigRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return create_bot_channel_config(session, bot_id=bot_id, payload=payload)
|
|
|
|
|
|
@router.put("/api/bots/{bot_id}/channels/{channel_id}")
|
|
def update_bot_channel(
|
|
bot_id: str,
|
|
channel_id: str,
|
|
payload: ChannelConfigUpdateRequest,
|
|
session: Session = Depends(get_session),
|
|
):
|
|
return update_bot_channel_config(session, bot_id=bot_id, channel_id=channel_id, payload=payload)
|
|
|
|
|
|
@router.delete("/api/bots/{bot_id}/channels/{channel_id}")
|
|
def delete_bot_channel(bot_id: str, channel_id: str, session: Session = Depends(get_session)):
|
|
return delete_bot_channel_config(session, bot_id=bot_id, channel_id=channel_id)
|