Files
2025-07-18 18:05:45 +05:00

56 lines
2.2 KiB
Python

from fastapi import APIRouter, HTTPException
from app.services.server.prank import PrankService
from app.models.server.prank import PrankCommandCreate, PrankCommandUpdate, PrankExecute
router = APIRouter(
prefix="/api/pranks",
tags=["Pranks"]
)
prank_service = PrankService()
@router.get("/commands")
async def get_all_prank_commands():
"""Получение всех доступных команд-пакостей"""
return await prank_service.get_all_prank_commands()
@router.get("/commands/{command_id}")
async def get_prank_command(command_id: str):
"""Получение команды-пакости по ID"""
return await prank_service.get_prank_command(command_id)
@router.post("/commands")
async def add_prank_command(command: PrankCommandCreate):
"""Добавление новой команды-пакости"""
return await prank_service.add_prank_command(command)
@router.put("/commands/{command_id}")
async def update_prank_command(command_id: str, update_data: PrankCommandUpdate):
"""Обновление команды-пакости"""
return await prank_service.update_prank_command(command_id, update_data)
@router.delete("/commands/{command_id}")
async def delete_prank_command(command_id: str):
"""Удаление команды-пакости"""
return await prank_service.delete_prank_command(command_id)
@router.get("/servers")
async def get_all_servers():
"""Получение списка всех доступных серверов"""
return await prank_service.get_all_servers()
@router.get("/servers/{server_id}/players")
async def get_server_online_players(server_id: str):
"""Получение списка онлайн игроков на сервере"""
return await prank_service.get_server_online_players(server_id)
@router.post("/execute")
async def execute_prank(username: str, prank_data: PrankExecute):
"""Выполнение пакости (списание монет и выполнение команды)"""
return await prank_service.execute_prank(
username,
prank_data.command_id,
prank_data.target_player,
prank_data.server_id
)