feat: new endpoints for users and updated models
This commit is contained in:
41
app/services/server/command.py
Normal file
41
app/services/server/command.py
Normal file
@ -0,0 +1,41 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from fastapi import HTTPException
|
||||
from typing import Dict
|
||||
|
||||
# Глобальное хранилище команд (в реальном проекте используйте БД)
|
||||
pending_commands: Dict[str, Dict] = {}
|
||||
|
||||
class CommandService:
|
||||
async def add_command(self, command_data):
|
||||
try:
|
||||
command_id = str(uuid.uuid4())
|
||||
pending_commands[command_id] = {
|
||||
"command": command_data.command,
|
||||
"server_ip": command_data.server_ip,
|
||||
"require_online_player": command_data.require_online_player,
|
||||
"created_at": datetime.now().isoformat()
|
||||
}
|
||||
print(f"[{datetime.now()}] Добавлена команда: {command_data.command} "
|
||||
f"для сервера {command_data.server_ip}")
|
||||
return {"status": "success", "command_id": command_id}
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
||||
|
||||
async def get_commands(self, server_ip: str):
|
||||
try:
|
||||
# Получаем команды для указанного сервера
|
||||
commands = [
|
||||
{"id": cmd_id, "command": cmd["command"], "require_online_player": cmd["require_online_player"]}
|
||||
for cmd_id, cmd in pending_commands.items()
|
||||
if cmd["server_ip"] == server_ip
|
||||
]
|
||||
|
||||
# Удаляем полученные команды (чтобы не выполнять их повторно)
|
||||
for cmd_id in list(pending_commands.keys()):
|
||||
if pending_commands[cmd_id]["server_ip"] == server_ip:
|
||||
del pending_commands[cmd_id]
|
||||
|
||||
return {"status": "success", "commands": commands}
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=400, detail=str(e))
|
Reference in New Issue
Block a user