Nuevos cambios en el backend
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
from typing import Annotated
|
||||
|
||||
from fastapi import APIRouter, Depends, status
|
||||
|
||||
from app.core.auth import get_current_user
|
||||
from app.models.user import User
|
||||
from app.schemas.user import GoogleLoginRequest, TokenResponse, UserLogin, UserRead, UserRegister
|
||||
from app.services.auth_service import AuthService, get_auth_service
|
||||
|
||||
router = APIRouter(prefix="/auth", tags=["auth"])
|
||||
|
||||
|
||||
@router.post("/register", response_model=UserRead, status_code=status.HTTP_201_CREATED)
|
||||
def register(
|
||||
payload: UserRegister,
|
||||
auth_service: Annotated[AuthService, Depends(get_auth_service)],
|
||||
) -> UserRead:
|
||||
return auth_service.register(payload)
|
||||
|
||||
|
||||
@router.post("/login", response_model=TokenResponse)
|
||||
def login(
|
||||
payload: UserLogin,
|
||||
auth_service: Annotated[AuthService, Depends(get_auth_service)],
|
||||
) -> TokenResponse:
|
||||
user = auth_service.authenticate(payload)
|
||||
token = auth_service.create_access_token(user.id)
|
||||
return TokenResponse(access_token=token)
|
||||
|
||||
|
||||
@router.post("/google", response_model=TokenResponse)
|
||||
def login_with_google(
|
||||
payload: GoogleLoginRequest,
|
||||
auth_service: Annotated[AuthService, Depends(get_auth_service)],
|
||||
) -> TokenResponse:
|
||||
user = auth_service.login_with_google(payload.id_token)
|
||||
token = auth_service.create_access_token(user.id)
|
||||
return TokenResponse(access_token=token)
|
||||
|
||||
|
||||
@router.get("/me", response_model=UserRead)
|
||||
def get_me(current_user: Annotated[User, Depends(get_current_user)]) -> UserRead:
|
||||
return UserRead.model_validate(current_user)
|
||||
Reference in New Issue
Block a user