From 0fab3270d3ddb8e1724d272bb414958bdf69e8e6 Mon Sep 17 00:00:00 2001 From: Ashibaya Date: Mon, 26 Jul 2021 17:31:56 +0900 Subject: [PATCH] Login change return dictionary. Added user login, name, surname. --- auth/login/schemas/login.py | 5 ++++- auth/routers/authentication.py | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/auth/login/schemas/login.py b/auth/login/schemas/login.py index b52d1ed..483071b 100644 --- a/auth/login/schemas/login.py +++ b/auth/login/schemas/login.py @@ -35,7 +35,10 @@ class User(UserBase): class Token(BaseModel): access_token: str token_type: str + login: Optional[str] = None + name: Optional[str] = None + surname: Optional[str] = None class TokenData(BaseModel): - email: Optional[str] = None \ No newline at end of file + login: Optional[str] = None \ No newline at end of file diff --git a/auth/routers/authentication.py b/auth/routers/authentication.py index edc0059..6bc50dc 100644 --- a/auth/routers/authentication.py +++ b/auth/routers/authentication.py @@ -2,6 +2,7 @@ from fastapi import APIRouter, Depends, status, HTTPException from fastapi.security import OAuth2PasswordRequestForm from auth import token from auth.login.models import login as models +from auth.login.repository import login from databases.pgsql import database from auth.hashing import Hash from sqlalchemy.orm import Session @@ -11,8 +12,11 @@ router = APIRouter(tags=['Authentication']) @router.post('/login') def login(request: OAuth2PasswordRequestForm = Depends(), db: Session = Depends(database.get_db)): - user = db.query(models.User).filter( - models.User.email == request.username).first() + + user_list = [login.get_user_by_email(db, request.username), + login.get_user_by_login(db, request.username), + login.get_user_by_phone(db, request.username)] + user = next((user for user in user_list if user is not None), None) if not user: raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Invalid Credentials") @@ -21,4 +25,4 @@ def login(request: OAuth2PasswordRequestForm = Depends(), db: Session = Depends( detail=f"Incorrect password") access_token = token.create_access_token(data={"sub": user.email}) - return {"access_token": access_token, "token_type": "bearer", "login": user.login,"name": user.name, "surname": user.surname} + return {"access_token": access_token, "token_type": "bearer", "login": user.login, "name": user.name, "surname": user.surname}