Pranav1908/CodeReviewAutomation
0
1from fastapi import FastAPI,File,UploadFile,HTTPException2from tempfile import NamedTemporaryFile3from app import generate4from app import loadContext5from IPython.display import Markdown6import os7from pydantic import BaseModel8import json9 10 11# Initialize FastAPI app12app = FastAPI()13 14# Pydantic model for input validation15class CodeSnippet(BaseModel):16 code: str17 18@app.get("/")19async def root():20 return {"Code Review Automation": "Version 1.0 'First Draft'"}21 22@app.post("/AutomateReview/")23def automate_review(snippet : CodeSnippet):24 try:25 print(f"Received snippet: {snippet}")26 escaped_code = json.dumps(snippet.code)27 print(escaped_code)28 result = generate(escaped_code)29 return {"answer": Markdown(result)}30 except Exception as e:31 return {"error": str(e)}32 33 34@app.post("/loadFile/")35def load_file(file: UploadFile = File(...)):36 try:37 with NamedTemporaryFile(delete=False) as tmp_file:38 tmp_file.write(file.file.read())39 temp_file_name=tmp_file.name40 41 file_content = loadContext(temp_file_name)42 result = generate(file_content)43 44 os.remove(temp_file_name)45 return {"answer":Markdown(result)}46 except Exception as e:47 raise HTTPException(status_code=500,detail=str(e))48 