from fastapi import FastAPI from fastapi.responses import Response from fastapi.responses import FileResponse from pydantic import BaseModel import random import matplotlib.pyplot as plt import pandas as pd import io app = FastAPI() # Define the ticket schema using Pydantic class Ticket(BaseModel): name: str department: str category: str description: str service_category: str difficulty: int # Adjust type as needed (e.g., int or str) class Code(BaseModel): code: str @app.get("/") def greet_json(): return {"Hello": "World!"} @app.post("/ticket") async def create_ticket(ticket: Ticket): # Here you can process the ticket, e.g., save it to a database. # For now, we simply return the received ticket data. tick = ticket.dict() tick["number"] = random.randint(1000, 9999) return { "message": "Ticket created successfully", "ticket": tick } @app.post("/run_code") async def run_code(code: Code): # img_buffer = io.BytesIO() exec(code.code) # img_buffer.seek(0) # Reset buffer position file_path = "graph.pdf" fig.save_fig(file_path) plt.close() # plt.savefig(file_path) # plt.close() # Return image as response # return Response(content=img_buffer.getvalue(), media_type="image/png") # return FileResponse(file_path, media_type="image/png") return FileResponse(file_path, media_type="application/pdf", filename="graph.pdf")