diff options
| author | l3wdfut4pwr <l3wdfut4pwr@gmail.com> | 2026-04-21 13:32:24 +0300 |
|---|---|---|
| committer | l3wdfut4pwr <l3wdfut4pwr@gmail.com> | 2026-04-21 13:32:24 +0300 |
| commit | f1842be3bfabe7850d33662da2da377676144c48 (patch) | |
| tree | 95e1f5d6a72a2fc99847f0331907139b6b750dcb /app/routes | |
| parent | 70b0706973d9d856ca9f136df23a6fbec0901aea (diff) | |
uv migration
Diffstat (limited to 'app/routes')
| -rw-r--r-- | app/routes/auth.py | 10 | ||||
| -rw-r--r-- | app/routes/me.py | 2 | ||||
| -rw-r--r-- | app/routes/register.py | 49 |
3 files changed, 26 insertions, 35 deletions
diff --git a/app/routes/auth.py b/app/routes/auth.py index a2de6db..6e0d410 100644 --- a/app/routes/auth.py +++ b/app/routes/auth.py @@ -19,9 +19,15 @@ async def login( ): user = await User.get_user_by_email(form_data.username, session=session) if not user: - user = await User.get_user_by_username(form_data.username, session=session) + user = await User.get_user_by_username( + form_data.username, session=session + ) - if not user or not verify_password(form_data.password, user.password): + if not user or not user.password: + logger.warning("Login failed | username/email={}", form_data.username) + raise HTTPException(status_code=401, detail="Invalid credentials") + + if not verify_password(form_data.password, user.password): logger.warning("Login failed | username/email={}", form_data.username) raise HTTPException(status_code=401, detail="Invalid credentials") diff --git a/app/routes/me.py b/app/routes/me.py index 65368e3..6d28a80 100644 --- a/app/routes/me.py +++ b/app/routes/me.py @@ -29,7 +29,6 @@ async def get_current_user_from_cookie( if not user or user.token_version != payload.get("token_version"): return {"authenticated": False, "user": None} - # Return authenticated user return { "authenticated": True, "user": { @@ -49,5 +48,4 @@ async def get_current_user_from_cookie( async def read_current_user( user_info: dict = Depends(get_current_user_from_cookie), ): - # Directly return the dict to the frontend return user_info diff --git a/app/routes/register.py b/app/routes/register.py index 779cf73..f0b36ed 100644 --- a/app/routes/register.py +++ b/app/routes/register.py @@ -4,9 +4,9 @@ from typing import Optional from fastapi import APIRouter, Depends, HTTPException, Response from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from sqlalchemy.orm import selectinload from app.auth.jwt import create_access_token, create_refresh_token +from app.models.integrations import UserIntegration from app.models.profile import Profile from app.models.user import User from app.schemas.user import UserCreate, UserRead @@ -27,7 +27,9 @@ async def register_user( email: Optional[str] = user.email.strip() if user.email else None logger.debug("Normalized email value: {}", email) - logger.info("Registration attempt | username={} email={}", user.username, email) + logger.info( + "Registration attempt | username={} email={}", user.username, email + ) if not ( re.search(r"[A-Za-z]", user.password) @@ -46,10 +48,13 @@ async def register_user( }, ) - result = await session.execute(select(User).where(User.username == user.username)) + result = await session.execute( + select(User).where(User.username == user.username) + ) if result.scalars().first(): logger.warning( - "Registration failed | username already exists | username={}", user.username + "Registration failed | username already exists | username={}", + user.username, ) raise HTTPException( status_code=400, @@ -69,34 +74,17 @@ async def register_user( hashed_password = hash_password(user.password) - new_user = User(username=user.username, email=email, password=hashed_password) - session.add(new_user) - await session.flush() - - new_profile = Profile(user_id=new_user.id) - session.add(new_profile) - - from app.models.integrations import UserIntegration - - new_integrations = UserIntegration(user_id=new_user.id) - session.add(new_integrations) - - await session.commit() - - result = await session.execute( - select(User) - .options( - selectinload(User.profile), - selectinload(User.integrations), - ) - .where(User.id == new_user.id) + new_user = User( + username=user.username, + email=email, + password=hashed_password, + profile=Profile(), + integrations=UserIntegration(), ) - new_user = result.scalars().first() - result = await session.execute( - select(User).options(selectinload(User.profile)).where(User.id == new_user.id) - ) - new_user = result.scalars().first() + session.add(new_user) + await session.commit() + await session.refresh(new_user, ["profile", "integrations"]) logger.success( "User successfully registered | id={} username={} email={}", @@ -104,7 +92,6 @@ async def register_user( new_user.username, new_user.email, ) - access_token = create_access_token( {"sub": str(new_user.id), "token_version": new_user.token_version} ) |
