add: store pranks

This commit is contained in:
2025-07-18 18:05:45 +05:00
parent d52d4dbf75
commit 7e4e2c0bad
7 changed files with 623 additions and 51 deletions

55
app/api/pranks.py Normal file
View File

@ -0,0 +1,55 @@
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
)