File size: 895 Bytes
92e7857
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from fastapi import APIRouter, Depends, HTTPException
from app.services.auth_service import authenticate_user, create_access_token, get_current_user
from app.models.auth import LoginRequest, LoginResponse
from app.db.database import get_db, AsyncSession

router = APIRouter()

@router.post("/login", response_model=LoginResponse)
async def login(

    user_data: LoginRequest,

    db: AsyncSession = Depends(get_db)

):
    user = await authenticate_user(user_data.email, user_data.password, db)
    if not user:
        raise HTTPException(status_code=401, detail="Invalid credentials")
    access_token = create_access_token(data={"sub": user.email})
    return LoginResponse(access_token=access_token, token_type="bearer", user=user)

@router.post("/logout")
async def logout(current_user: dict = Depends(get_current_user)):
    return {"message": "Successfully logged out"}