Initial commit
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
FROM python:3.9
|
||||
WORKDIR /app
|
||||
COPY . .
|
||||
RUN pip install fastapi uvicorn
|
||||
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "6661"]
|
||||
@@ -0,0 +1,73 @@
|
||||
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=["*"],
|
||||
)
|
||||
Reference in New Issue
Block a user