Skip to content

Commit 2b209f1

Browse files
Fixed bug + added CORS
1 parent 799dfd2 commit 2b209f1

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

app.py

+12-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from src.config.settings import get_settings
55
from src.logger.logger import get_logger
66
from src.routers import router_generator
7+
from fastapi.middleware.cors import CORSMiddleware
78

89
settings = get_settings()
910
logger = get_logger(__file__)
@@ -22,6 +23,16 @@
2223
app = FastAPI(
2324
title="AI Report Generator API App SMARTSHIELD",
2425
)
26+
27+
# Add CORS middleware
28+
app.add_middleware(
29+
CORSMiddleware,
30+
allow_origins=["*"], # Allows all origins, you can also specify a list of allowed origins
31+
allow_credentials=True,
32+
allow_methods=["*"], # Allows all HTTP methods (GET, POST, etc.)
33+
allow_headers=["*"], # Allows all headers
34+
)
35+
2536
logger.info(f"Starting App : \n {ascii_art}")
2637

2738
logger.info("App Ready")
@@ -37,7 +48,7 @@ async def root():
3748
uvicorn.run(
3849
app,
3950
port=8002,
40-
host="localhost",
51+
host="0.0.0.0",
4152

4253
)
4354
except KeyboardInterrupt as ki :

src/routers/router_generator.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,14 @@ async def generate_report(generate_report_request: GenerateReportRequest):
2929
with open(report_pdf_file_path, "rb") as report_file:
3030
pdf_content = io.BytesIO(report_file.read())
3131

32-
os.remove(report_pdf_file_path)
33-
3432
# Return the PDF content as a StreamingResponse
3533
pdf_content.seek(0)
3634
return StreamingResponse(
3735
pdf_content,
3836
media_type="application/pdf",
3937
headers={"Content-Disposition": "attachment; filename=report.pdf"}
4038
)
41-
39+
4240
except Exception as e:
4341
logger.error(f"Critical Error occurred in router_generator.generate_report: {e}")
4442
raise HTTPException(status_code=500, detail="An error occurred while generating the report")

src/services/service_generator.py

+10-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from crewai import Crew
33
import uuid
44
import os
5+
from fastapi.responses import FileResponse
56
from typing import Dict
67
from src.config.settings import get_settings
78
from src.logger.logger import get_logger
@@ -30,13 +31,18 @@ async def agenerate_report(threat : str , threat_data : Dict ) :
3031
)
3132
for task in crew.tasks:
3233
result = task.execute()
33-
34-
pdf_file_path = "cybersecurity_report" + str(uuid.uuid4()) + ".pdf"
34+
35+
path_prefix = r"C:\\Users\\"
36+
pdf_file_name = r"cybersecurity_report" + str(uuid.uuid4()) + ".pdf"
37+
pdf_file_path = path_prefix + pdf_file_name
38+
print("PDF file path :", pdf_file_path)
3539
html_report = generate_html_report(result, client)
36-
40+
print(html_report)
3741
html_to_pdf(html_report, pdf_file_path)
42+
print("HTML to PDF conversion done")
43+
44+
return pdf_file_path
3845

39-
return pdf_file_path
4046

4147
except Exception as e :
4248
logger.error(f"Error occured in service_report_generator.generate_report : {e}")

0 commit comments

Comments
 (0)