Skip to content

Commit b31226b

Browse files
verifying email
1 parent bf27317 commit b31226b

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

email_config/services.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,11 @@ def get_by_email(self, email):
5757
except Exception as e:
5858
logger.error(f"Error fetching contact: {str(e)}", exc_info=True)
5959
raise BaseError("Error while fetching branch contact", original_exception=e)
60+
61+
def verify(self, email):
62+
"""
63+
Verifies if email is blocked.
64+
"""
65+
blocked_email = self.get_by_email(email)
66+
if blocked_email:
67+
raise BaseError("Email is blocked")

user/services/email_verify.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,23 @@
66
from commons.clients.mail_client import MailClient
77
from commons.clients.redis_client import RedisClient
88
from commons.enums import RedisKey
9+
from email_config.services import BlockedEmailService
910
from mail_template.config import TEMPLATE_TYPE_CONFIG
1011
from mail_template.enum import TemplateType
1112

1213

1314
class EmailVerifyService:
14-
def __init__(self, redis_client=None, mail_client=None):
15+
def __init__(self, redis_client=None, mail_client=None, blocked_email_service=None):
1516
self.redis_client = redis_client or RedisClient()
1617
self.mail_client = mail_client or MailClient()
18+
self.blocked_email_service = blocked_email_service or BlockedEmailService()
1719

1820
def send_code(self, data):
1921
email = data.get("email")
2022

23+
# Check if the email is blocked
24+
self.blocked_email_service.verify(email)
25+
2126
# Generate a 6-digit random code
2227
code = f"{self.get_code()}"
2328

@@ -45,6 +50,9 @@ def verify(self, data):
4550
email = data.get("email")
4651
code = data.get("code")
4752

53+
# Check if the email is blocked
54+
self.blocked_email_service.verify(email)
55+
4856
stored_code = self.redis_client.get(f"{RedisKey.EMAIL_VERIFICATION}:{email}")
4957
if stored_code is None or stored_code != code:
5058
return False

user/services/user.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@
55

66
from commons.exceptions.BaseError import BaseError
77
from commons.service.BaseService import BaseService
8+
from email_config.services import BlockedEmailService
89
from ..serializers import RegisterSerializer
910

1011
User = get_user_model()
1112
logger = logging.getLogger(__name__)
1213

1314

1415
class UserService(BaseService):
15-
def __init__(self):
16+
def __init__(self, blocked_email_service=None):
1617
super().__init__(User)
18+
self.blocked_email_service = blocked_email_service or BlockedEmailService()
1719

1820
def get_or_create(self, user_data):
1921
try:
@@ -32,6 +34,7 @@ def get_or_create(self, user_data):
3234

3335
def get_by_email(self, email):
3436
try:
37+
self.blocked_email_service.verify(email)
3538
return User.objects.filter(email=email).first()
3639
except Exception as e:
3740
logger.error("Error while updating branch location", exc_info=True)

0 commit comments

Comments
 (0)