1
- from fastapi import BackgroundTasks , Request
1
+ from fastapi import Request
2
2
from fastapi_pundra .common .jwt_utils import create_access_token , create_refresh_token
3
- from fastapi_pundra .common .mailer .mail import send_mail_background
4
3
from fastapi_pundra .common .password import compare_hashed_password , generate_password_hash
5
4
from fastapi_pundra .rest .exceptions import (
6
5
BaseAPIException ,
9
8
)
10
9
from fastapi_pundra .rest .helpers import the_query , the_sorting
11
10
from fastapi_pundra .rest .paginate import paginate
11
+ from sqlalchemy .orm import Session
12
12
13
13
from app .database import get_db
14
14
from app .models .users import User
19
19
class UserService :
20
20
"""User service."""
21
21
22
- def __init__ (self ) -> None :
22
+ def __init__ (self , db : Session | None = None ) -> None :
23
23
"""Initialize the user service."""
24
- self .db = get_db ()
25
-
26
- async def s_registration (
27
- self ,
28
- request : Request ,
29
- data : UserCreateSchema ,
30
- background_tasks : BackgroundTasks ,
31
- ) -> dict :
24
+ self .db = db or get_db ()
25
+
26
+ async def s_registration (self , request : Request , data : UserCreateSchema ) -> dict :
32
27
"""Register a new user."""
33
28
db_user = self .db .query (User ).filter (User .email == data .email ).first ()
34
29
@@ -48,19 +43,19 @@ async def s_registration(
48
43
user_data = UserSerializer (** new_user .as_dict ())
49
44
50
45
# Send welcome email in background
51
- template_name = "welcome_email.html"
52
- context = {
53
- "name" : new_user .name or new_user .email ,
54
- "activation_link" : f"{ request .base_url } api/v1/users/activate" ,
55
- }
56
-
57
- await send_mail_background (
58
- background_tasks = background_tasks ,
59
- subject = f"Welcome, { new_user .name or new_user .email } !" ,
60
- to = [new_user .email ],
61
- template_name = template_name ,
62
- context = context ,
63
- )
46
+ # template_name = "welcome_email.html"
47
+ # context = {
48
+ # "name": new_user.name or new_user.email,
49
+ # "activation_link": f"{request.base_url}api/v1/users/activate",
50
+ # }
51
+
52
+ # await send_mail_background(
53
+ # background_tasks=background_tasks,
54
+ # subject=f"Welcome, {new_user.name or new_user.email}!",
55
+ # to=[new_user.email],
56
+ # template_name=template_name,
57
+ # context=context,
58
+ # )
64
59
65
60
return {"message" : "Registration successful" , "user" : user_data .model_dump ()}
66
61
0 commit comments