27 lines
907 B
Python
27 lines
907 B
Python
"""Auth endpoints: login, register, current user."""
|
|
from fastapi import APIRouter, Depends
|
|
from sqlalchemy.orm import Session
|
|
from app.database import get_db
|
|
from app.schemas.auth import LoginRequest, RegisterRequest
|
|
from app.schemas.common import TokenResponse, UserBrief
|
|
from app.services.auth_service import AuthService
|
|
from app.api.deps import get_current_user
|
|
from app.models.user import User
|
|
|
|
router = APIRouter(prefix="/auth", tags=["auth"])
|
|
|
|
|
|
@router.post("/login", response_model=TokenResponse)
|
|
def login(req: LoginRequest, db: Session = Depends(get_db)):
|
|
return AuthService.login(db, req)
|
|
|
|
|
|
@router.post("/register", response_model=TokenResponse)
|
|
def register(req: RegisterRequest, db: Session = Depends(get_db)):
|
|
return AuthService.register(db, req)
|
|
|
|
|
|
@router.get("/me", response_model=UserBrief)
|
|
def me(user: User = Depends(get_current_user)):
|
|
return UserBrief.model_validate(user)
|