from app import db from app.user import hashing from app.user.models import User from fastapi import APIRouter, Depends, HTTPException, status from fastapi.security import OAuth2PasswordRequestForm from sqlalchemy.orm import Session from .jwt import create_access_token router = APIRouter(tags=["auth"]) @router.post("/login") def login( request: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(db.get_db) ): user = db.query(User).filter(User.email == request.username).first() if not user: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="Invalid credentials" ) if not hashing.verify_password(request.password, user.password): raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail="Incorrect password" ) access_token = create_access_token(data={"sub": user.email}) return {"access_token": access_token, "token_type": "bearer"}