Update code in endpoints/people.get.py

This commit is contained in:
Backend IM Bot 2025-03-30 13:29:41 +00:00
parent 1f81ae8717
commit 35c36f0f23

View File

@ -0,0 +1,40 @@
from fastapi import APIRouter, Depends, HTTPException, status
from fastapi.security import OAuth2AuthorizationCodeBearer
from sqlalchemy.orm import Session
from typing import Optional
from core.database import get_db
from models.user import User
from schemas.user import UserSchema, UserCreate
from helpers.auth_helpers import verify_google_token, get_user_by_email, create_user_from_google
from helpers.token_helpers import create_access_token
router = APIRouter()
oauth2_scheme = OAuth2AuthorizationCodeBearer(
authorizationUrl="https://accounts.google.com/o/oauth2/v2/auth",
tokenUrl="https://oauth2.googleapis.com/token"
)
@router.get("/login/google", response_model=UserSchema)
async def google_login(
token: str,
db: Session = Depends(get_db)
):
google_user = verify_google_token(token)
if not google_user:
raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED,
detail="Invalid Google token"
)
user = get_user_by_email(db, google_user.email)
if not user:
user = create_user_from_google(db, google_user)
access_token = create_access_token(data={"sub": user.email})
return {
"user": user,
"access_token": access_token,
"token_type": "bearer"
}