Spaces:
Sleeping
Sleeping
File size: 925 Bytes
1cff1e5 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | from fastapi import APIRouter, HTTPException
from schemas.auth import SignupRequest, LoginRequest, AuthResponse
from services.auth_service import signup_user, login_user
router = APIRouter()
@router.post("/signup", response_model=AuthResponse)
async def signup(request: SignupRequest):
"""Register a new user."""
try:
result = await signup_user(
name=request.name,
email=request.email,
password=request.password,
)
return result
except ValueError as e:
raise HTTPException(status_code=400, detail=str(e))
@router.post("/login", response_model=AuthResponse)
async def login(request: LoginRequest):
"""Authenticate and get JWT token."""
try:
result = await login_user(email=request.email, password=request.password)
return result
except ValueError as e:
raise HTTPException(status_code=401, detail=str(e))
|