Automated Action c9baaa994e Create comprehensive Task Manager API with FastAPI
- Add user authentication with JWT tokens
- Implement task CRUD operations with status and priority
- Set up SQLite database with SQLAlchemy ORM
- Create Alembic migrations for database schema
- Add comprehensive API documentation
- Include health check endpoint and CORS configuration
- Structure codebase with proper separation of concerns
2025-06-20 19:35:55 +00:00

38 lines
1.1 KiB
Python

from fastapi import Depends, HTTPException, status
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from sqlalchemy.orm import Session
from app.db.session import get_db
from app.core.security import verify_token
from app.services.user import get_user_by_email
from app.models.user import User
security = HTTPBearer()
def get_current_user(
credentials: HTTPAuthorizationCredentials = Depends(security),
db: Session = Depends(get_db),
) -> User:
credentials_exception = HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Could not validate credentials",
headers={"WWW-Authenticate": "Bearer"},
)
token = credentials.credentials
email = verify_token(token)
if email is None:
raise credentials_exception
user = get_user_by_email(db, email=email)
if user is None:
raise credentials_exception
return user
def get_current_active_user(current_user: User = Depends(get_current_user)) -> User:
if not current_user.is_active:
raise HTTPException(status_code=400, detail="Inactive user")
return current_user