from fastapi import FastAPI, Request, HTTPException from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates import json from ordinateur import ordinateur app = FastAPI() ordi1 = ordinateur() app.mount("/static", StaticFiles(directory="static"), name="static") templates = Jinja2Templates(directory="templates") @app.get("/ordi1", response_class=HTMLResponse) async def get_ordi1_info(request: Request): return templates.TemplateResponse( request=request, name="item.html", context={"ordi": ordi1} ) @app.post("/endpoint") async def receive_info(request: Request): # Lire le body brut body = await request.body() print(body) # Parser le JSON try: data = json.loads(body) except json.JSONDecodeError: raise HTTPException(status_code=400, detail="Invalid JSON") # Debug print("Infos reçues :", data) ordi1.mb_serial = data['HARDWARE']['mb_serial'] ordi1.hostname = data['HARDWARE']['hostname'] ordi1.cpu = data['HARDWARE']['cpu'] ordi1.cpu_id = data['HARDWARE']['cpu_id'] ordi1.memory_mb = data['HARDWARE']['memory_mb'] ordi1.ram_size = data['HARDWARE']['ram_size'] ordi1.ram_gen = data['HARDWARE']['ram_gen'] ordi1.sizes = data['HARDWARE']['sizes'] ordi1.cpu_freq_min = data['HARDWARE']['cpu_freq_min'] ordi1.cpu_freq_cur = data['HARDWARE']['cpu_freq_cur'] ordi1.cpu_freq_max = data['HARDWARE']['cpu_freq_max'] ordi1.gpu_model = data['HARDWARE']['gpu_model'] ordi1.chassis_serial = data['HARDWARE']['chassis_serial'] ordi1.cpu_cores_nb = data['HARDWARE']['cpu_cores_nb'] ordi1.cpu_threads_nb = data['HARDWARE']['cpu_threads_nb'] ordi1.ram_number = data['HARDWARE']['ram_number'] ordi1.ram_slots_nb = data['HARDWARE']['ram_slots_nb'] ordi1.os = data['SOFTWARE']['os'] ordi1.arch = data['SOFTWARE']['arch'] ordi1.desktop = data['SOFTWARE']['desktop'] ordi1.wm = data['SOFTWARE']['wm'] ordi1.kernel = data['SOFTWARE']['kernel'] ordi1.mac_adresse = data['SOFTWARE']['mac_adresse'] #Test print(f"Le serial de la mb est {ordi1.mb_serial}") print(f"Hostname est {ordi1.hostname}") print(f"Your cpu is {ordi1.cpu}") print(f"Le id de ce cpu est {ordi1.cpu_id}") print(f"le memory en megabytes {ordi1.memory_mb}") print(f"Voici numéro de ram {ordi1.ram_number}") return ({"status": "ok"}) #@app.get("/ordi1") #async def get_ordi1_info(): # return ordi1