from fastapi import FastAPI, HTTPException from pydantic import BaseModel import sqlite3 import datetime app = FastAPI() # Создаем соединение с базой данных conn = sqlite3.connect("/db/rustdesk.db", check_same_thread=False) cursor = conn.cursor() # Создаем таблицу, если её нет cursor.execute(""" CREATE TABLE IF NOT EXISTS installs ( id INTEGER PRIMARY KEY AUTOINCREMENT, rust_id TEXT, computer_name TEXT, install_time TEXT ) """) conn.commit() # Модель данных class InstallData(BaseModel): rust_id: str computer_name: str install_time: str # Маршрут для получения всех записей @app.get("/api/installs") def get_installs(): cursor.execute("SELECT * FROM installs") rows = cursor.fetchall() # Преобразуем результаты в список словарей result = [] for row in rows: result.append({ "id": row[0], "rust_id": row[1], "computer_name": row[2], "install_time": row[3] }) return result # Маршрут для добавления новой записи @app.post("/api/install") def add_install(data: InstallData): cursor.execute("INSERT INTO installs (rust_id, computer_name, install_time) VALUES (?, ?, ?)", (data.rust_id, data.computer_name, data.install_time)) conn.commit() return {"status": "success"} # Добавляем маршрут для удаления записи @app.delete("/api/delete/{install_id}") async def delete_install(install_id: int): try: cursor.execute("DELETE FROM installs WHERE id = ?", (install_id,)) conn.commit() if cursor.rowcount == 0: raise HTTPException(status_code=404, detail="Запись не найдена") return {"status": "success"} except Exception as e: raise HTTPException(status_code=500, detail=str(e)) from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, allow_origins=["http://10.0.0.10:8080", "http://localhost:8080"], # Добавляем localhost allow_credentials=True, allow_methods=["*"], allow_headers=["*"], )