2025-03-11 10:58:05 +00:00

23 lines
976 B
Python

from typing import Optional
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from models import User
from schemas import UserSchema
from database import get_db
from utils import verify_password, create_access_token
router = APIRouter()
@router.post("/request-access", response_model=UserSchema)
async def request_access(user_data: UserSchema, db: Session = Depends(get_db)):
"""
Request access for a user by providing email and password.
Returns the user data along with an access token if successful.
"""
user = db.query(User).filter(User.email == user_data.email).first()
if not user:
raise HTTPException(status_code=404, detail="User not found")
if not verify_password(user_data.password, user.hashed_password):
raise HTTPException(status_code=401, detail="Incorrect password")
access_token = create_access_token(user.id)
return {**user_data.dict(), "access_token": access_token}