feat: implement atomic user creation with activation email trigger

This commit is contained in:
Your Name
2026-04-10 10:51:23 +05:30
parent 8321dacf0c
commit 6a9c9d0812
+9
View File
@@ -1,9 +1,12 @@
from django.contrib.auth import get_user_model
from django.contrib.auth.tokens import default_token_generator
from django.db import transaction
from django.utils.http import urlsafe_base64_decode
from rest_framework import generics, permissions, status
from rest_framework.response import Response
from users.utils import send_activation_email
from .serializers import UserSerializer
User = get_user_model()
@@ -14,6 +17,12 @@ class RegisterView(generics.CreateAPIView):
permission_classes = (permissions.AllowAny,)
serializer_class = UserSerializer
def perform_create(self, serializer):
with transaction.atomic():
# making sure that if email fails, the user is not created
user = serializer.save()
send_activation_email(user)
class ActivationView(generics.GenericAPIView):
permission_classes = (permissions.AllowAny,)