muhammadshaheryar commited on
Commit
692a6a6
·
verified ·
1 Parent(s): 78a91ad

Update src/main.py

Browse files
Files changed (1) hide show
  1. src/main.py +10 -16
src/main.py CHANGED
@@ -1,37 +1,32 @@
1
  import os
2
- import sys
3
- from pathlib import Path
4
  from datetime import datetime
5
  from typing import Optional
6
-
7
  from fastapi import FastAPI, Depends, HTTPException, Query
8
  from fastapi.middleware.cors import CORSMiddleware
9
  from sqlalchemy.orm import Session
10
- from dotenv import load_dotenv
11
-
12
- _src_path = Path(__file__).parent
13
- sys.path.insert(0, str(_src_path))
14
- load_dotenv(_src_path.parent / ".env")
15
 
 
16
  from database import get_db, engine, Base
 
 
 
17
  from services.todo_service import TodoService
18
  from api.routes.auth import router as auth_router
19
  from api.chat_router import router as chat_router
20
  from api.task_router import router as task_router
21
  from middleware.auth import get_current_user
22
 
23
- # FORCE DISABLE LIFESPAN to bypass the Starlette error
24
  app = FastAPI(
25
  title="Todo API",
26
- version="2.0.0",
27
- lifespan=None # This explicitly tells FastAPI to ignore lifespan generators
28
  )
29
 
 
30
  @app.on_event("startup")
31
  def startup_event():
32
- # Use the old-school startup method
33
  Base.metadata.create_all(bind=engine)
34
 
 
35
  app.add_middleware(
36
  CORSMiddleware,
37
  allow_origins=["*"],
@@ -40,14 +35,13 @@ app.add_middleware(
40
  allow_headers=["*"],
41
  )
42
 
 
43
  app.include_router(auth_router, prefix="/api/v1")
44
  app.include_router(chat_router)
45
  app.include_router(task_router, prefix="/api/v1")
46
 
47
  @app.get("/")
48
  def health_check():
49
- return {"status": "online"}
50
 
51
- if __name__ == "__main__":
52
- import uvicorn
53
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
  import os
 
 
2
  from datetime import datetime
3
  from typing import Optional
 
4
  from fastapi import FastAPI, Depends, HTTPException, Query
5
  from fastapi.middleware.cors import CORSMiddleware
6
  from sqlalchemy.orm import Session
 
 
 
 
 
7
 
8
+ # These imports now work because the Root main.py added 'src' to the path
9
  from database import get_db, engine, Base
10
+ from models.todo import Todo
11
+ from models.user import User
12
+ from schemas.todo import TodoCreate, TodoUpdate, TodoResponse, TodoListResponse
13
  from services.todo_service import TodoService
14
  from api.routes.auth import router as auth_router
15
  from api.chat_router import router as chat_router
16
  from api.task_router import router as task_router
17
  from middleware.auth import get_current_user
18
 
 
19
  app = FastAPI(
20
  title="Todo API",
21
+ version="2.0.0"
 
22
  )
23
 
24
+ # Database creation on startup
25
  @app.on_event("startup")
26
  def startup_event():
 
27
  Base.metadata.create_all(bind=engine)
28
 
29
+ # FIXED CORS: Using "*" so your GitHub Pages frontend can connect
30
  app.add_middleware(
31
  CORSMiddleware,
32
  allow_origins=["*"],
 
35
  allow_headers=["*"],
36
  )
37
 
38
+ # Routes
39
  app.include_router(auth_router, prefix="/api/v1")
40
  app.include_router(chat_router)
41
  app.include_router(task_router, prefix="/api/v1")
42
 
43
  @app.get("/")
44
  def health_check():
45
+ return {"status": "backend is running", "timestamp": datetime.utcnow()}
46
 
47
+ # ... (Keep your existing _todo_to_response and route functions below)