24 lines
776 B
Python
24 lines
776 B
Python
from __future__ import annotations
|
|
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.api.dependencies import current_user
|
|
from app.db.session import get_session
|
|
from app.models.user import User
|
|
from app.schemas.auth import LoginRequest, TokenResponse, UserRead
|
|
from app.services.auth_service import AuthService
|
|
|
|
router = APIRouter(prefix="/auth", tags=["auth"])
|
|
|
|
|
|
@router.post("/login", response_model=TokenResponse)
|
|
def login(payload: LoginRequest, session: Session = Depends(get_session)) -> TokenResponse:
|
|
token = AuthService(session).login(payload.email, payload.password)
|
|
return TokenResponse(access_token=token)
|
|
|
|
|
|
@router.get("/me", response_model=UserRead)
|
|
def me(user: User = Depends(current_user)) -> User:
|
|
return user
|
|
|