From 63e87a3ed84ee9e9e4a4ff329a40d2b7ce5e5d0d Mon Sep 17 00:00:00 2001 From: l3wdfut4pwr Date: Sat, 4 Apr 2026 00:03:04 +0300 Subject: add profile --- app/routes/register.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'app/routes/register.py') diff --git a/app/routes/register.py b/app/routes/register.py index ffcd336..779cf73 100644 --- a/app/routes/register.py +++ b/app/routes/register.py @@ -4,8 +4,10 @@ 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.profile import Profile from app.models.user import User from app.schemas.user import UserCreate, UserRead from app.utils.db import get_async_session @@ -69,8 +71,32 @@ async def register_user( 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() - await session.refresh(new_user) + + result = await session.execute( + select(User) + .options( + selectinload(User.profile), + selectinload(User.integrations), + ) + .where(User.id == new_user.id) + ) + 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() logger.success( "User successfully registered | id={} username={} email={}", -- cgit v1.3-3-g829e