From 7634630eac55e6f30fae4cddcd8f1673dc2138bb Mon Sep 17 00:00:00 2001 From: saleemasekrea000 Date: Thu, 20 Feb 2025 22:29:18 +0300 Subject: [PATCH 1/3] send account creation email asynchronously via BackgroundTasks --- backend/app/api/routes/users.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/app/api/routes/users.py b/backend/app/api/routes/users.py index 6429818458..10380605b4 100644 --- a/backend/app/api/routes/users.py +++ b/backend/app/api/routes/users.py @@ -1,7 +1,7 @@ import uuid from typing import Any -from fastapi import APIRouter, Depends, HTTPException +from fastapi import APIRouter, Depends, HTTPException, BackgroundTasks from sqlmodel import col, delete, func, select from app import crud @@ -51,10 +51,13 @@ def read_users(session: SessionDep, skip: int = 0, limit: int = 100) -> Any: @router.post( "/", dependencies=[Depends(get_current_active_superuser)], response_model=UserPublic ) -def create_user(*, session: SessionDep, user_in: UserCreate) -> Any: +def create_user( + *, session: SessionDep, user_in: UserCreate, background_tasks: BackgroundTasks +) -> Any: """ Create new user. """ + user = crud.get_user_by_email(session=session, email=user_in.email) if user: raise HTTPException( @@ -67,11 +70,12 @@ def create_user(*, session: SessionDep, user_in: UserCreate) -> Any: email_data = generate_new_account_email( email_to=user_in.email, username=user_in.email, password=user_in.password ) - send_email( + background_tasks.add_task( + send_email, email_to=user_in.email, subject=email_data.subject, html_content=email_data.html_content, - ) + ) return user From 4452798a72f1b62a45fd164314668d2d95549e3d Mon Sep 17 00:00:00 2001 From: saleemasekrea000 Date: Thu, 20 Feb 2025 22:40:20 +0300 Subject: [PATCH 2/3] fix linting issues --- backend/app/api/routes/users.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/app/api/routes/users.py b/backend/app/api/routes/users.py index 10380605b4..7cb26f3573 100644 --- a/backend/app/api/routes/users.py +++ b/backend/app/api/routes/users.py @@ -1,7 +1,7 @@ import uuid from typing import Any -from fastapi import APIRouter, Depends, HTTPException, BackgroundTasks +from fastapi import APIRouter, BackgroundTasks, Depends, HTTPException from sqlmodel import col, delete, func, select from app import crud @@ -57,7 +57,6 @@ def create_user( """ Create new user. """ - user = crud.get_user_by_email(session=session, email=user_in.email) if user: raise HTTPException( From 2d1586509611fc9102e1de9f40cffd35d33be72c Mon Sep 17 00:00:00 2001 From: saleemasekrea000 Date: Thu, 20 Feb 2025 22:47:07 +0300 Subject: [PATCH 3/3] apply ruff formatting to users.py --- backend/app/api/routes/users.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/app/api/routes/users.py b/backend/app/api/routes/users.py index 7cb26f3573..0e0bcb94cb 100644 --- a/backend/app/api/routes/users.py +++ b/backend/app/api/routes/users.py @@ -74,7 +74,7 @@ def create_user( email_to=user_in.email, subject=email_data.subject, html_content=email_data.html_content, - ) + ) return user