API-Server/main.py

64 lines
1.8 KiB
Python

from fastapi import FastAPI
from pydantic import BaseModel
import mysql.connector
from datetime import datetime
import Classes.main_classes as CL ## Importiert Classes
## uvicorn.exe main:app --reload Startet den API-Server
def database(query,name,user):
# server.start()
# print(f"{filename}-SSH Server start Port:{ssh_tunnel.server_port()}")
mydb = mysql.connector.connect(
host="172.17.1.21",
port=3306,
user="root",
password="N53yBCswuawzBzS445VNAhWVMs3N59Gb9szEsrzXRBzarDqpdETpQeyt5v5CGe",
database="" + name,
auth_plugin='mysql_native_password',
)
mydb.connect()
# print(f"{filename}-SQL Server Connect")
# print(f"{filename}-{query}")
cursor = mydb.cursor()
if "SELECT" in query:
if user:
cursor.execute(query, user)
return cursor.fetchone()
else:
cursor.execute(query, user)
# print(f"{filename}- Inside SELECT ALL")
return cursor.fetchall()
if "SHOW" in query:
cursor.execute(query)
return cursor.fetchall()
if "INSERT" in query:
cursor.execute(query,user)
mydb.commit()
if "UPDATE" in query:
cursor.execute(query,user)
mydb.commit()
mydb.close()
app = FastAPI()
class Ping_Set(BaseModel):
## Test
name: str
ipadress: str
@app.post("/ping")
async def ping(ping: Ping_Set):
database(f"INSERT INTO `Ping-Server` VALUES ('{datetime.now()}','{ping.name}','{ping.ipadress}')","Stines-GmbH","")
return f"ADD Ping from {ping.name} to Server"
## Get Database from Server
@app.post("/database_get/")
async def database_get(get: CL.CL_Database_get):
get_database = database("SHOW DATABASES","","")
if get.name in f"({get_database},)":
return True
else:
return False