56 lines
2.2 KiB
Python
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
|
|
)
|