/
Odisseywolf
/
BioSphere
Обзор
Документация
Войти
/
Odisseywolf
/
BioSphere
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
server/api/simulation.py
44 строки
1 KB
Odisseywolf
create: LICENSE, install.bat , install.sh , main.py, README.md, requirements.txt, main.py, auth.py, simulation.py, actions.py, database.py, models.py, config.py
27 май 2026, 16:28
Верифицирован
27 май 2026, 16:28
d6b5588
Код
Авторство
О чём код?
# FILE: server/api/simulation.py from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from models import Simulation, User from auth import get_current_user from database import get_db router = APIRouter() @router.get("/status") def get_status(db: Session = Depends(get_db), user: User = Depends(get_current_user)): sim = db.query(Simulation).filter(Simulation.owner_id == user.id).first() if not sim: raise HTTPException(status_code=404, detail="Simulation not found") return { "running": sim.is_running, "speed": sim.speed, "year": sim.current_year, "day": sim.current_day } @router.post("/control") def control_simulation( action: str, # start, pause, speed value: float = None, db: Session = Depends(get_db), user: User = Depends(get_current_user) ): sim = db.query(Simulation).filter(Simulation.owner_id == user.id).first() if not sim: raise HTTPException(status_code=404, detail="Simulation not found") if action == "pause": sim.is_running = False elif action == "start": sim.is_running = True elif action == "speed" and value is not None: if 0 <= value <= 100: sim.speed = value else: raise HTTPException(status_code=400, detail="Speed must be 0–100 years/min") db.commit() return {"status": "updated", "action": action}