diff --git a/src/ea_chatbot/api/__init__.py b/src/ea_chatbot/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/ea_chatbot/api/main.py b/src/ea_chatbot/api/main.py new file mode 100644 index 0000000..5d46700 --- /dev/null +++ b/src/ea_chatbot/api/main.py @@ -0,0 +1,25 @@ +from fastapi import FastAPI +from fastapi.middleware.cors import CORSMiddleware + +app = FastAPI( + title="Election Analytics Chatbot API", + description="Backend API for the LangGraph-based Election Analytics Chatbot", + version="0.1.0" +) + +# Configure CORS +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Adjust for production + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +@app.get("/health") +async def health_check(): + return {"status": "ok"} + +if __name__ == "__main__": + import uvicorn + uvicorn.run(app, host="0.0.0.0", port=8000) diff --git a/src/ea_chatbot/api/routers/__init__.py b/src/ea_chatbot/api/routers/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/api/test_main.py b/tests/api/test_main.py new file mode 100644 index 0000000..df78d1b --- /dev/null +++ b/tests/api/test_main.py @@ -0,0 +1,9 @@ +from fastapi.testclient import TestClient +from ea_chatbot.api.main import app + +client = TestClient(app) + +def test_health_check(): + response = client.get("/health") + assert response.status_code == 200 + assert response.json() == {"status": "ok"}