update
This commit is contained in:
@@ -89,23 +89,28 @@ class SupportTicketCreateSerializer(serializers.ModelSerializer):
|
||||
|
||||
def validate_user_email(self, value):
|
||||
"""
|
||||
Validate that the email is registered and active in the RegisteredEmail model
|
||||
Validate email format and optionally check if registered
|
||||
"""
|
||||
from .models import RegisteredEmail
|
||||
from django.core.validators import validate_email
|
||||
from django.core.exceptions import ValidationError as DjangoValidationError
|
||||
|
||||
# Check if email exists and is active in RegisteredEmail model
|
||||
# Basic email format validation
|
||||
try:
|
||||
validate_email(value)
|
||||
except DjangoValidationError:
|
||||
raise serializers.ValidationError("Please enter a valid email address.")
|
||||
|
||||
# Optional: Check if email is registered (for analytics/tracking)
|
||||
# But don't block ticket creation if not registered
|
||||
try:
|
||||
registered_email = RegisteredEmail.objects.get(email=value)
|
||||
if not registered_email.is_active:
|
||||
raise serializers.ValidationError(
|
||||
"This email has been deactivated. "
|
||||
"Please contact us at support@gnxsoft.com for assistance."
|
||||
)
|
||||
# Log this but don't block the ticket
|
||||
logger.warning(f'Ticket submitted by deactivated registered email: {value}')
|
||||
except RegisteredEmail.DoesNotExist:
|
||||
raise serializers.ValidationError(
|
||||
"This email is not registered in our system. "
|
||||
"Please contact us at support@gnxsoft.com to register your email first."
|
||||
)
|
||||
# This is fine - unregistered users can submit tickets
|
||||
logger.info(f'Ticket submitted by unregistered email: {value}')
|
||||
|
||||
return value
|
||||
|
||||
@@ -133,12 +138,14 @@ class SupportTicketCreateSerializer(serializers.ModelSerializer):
|
||||
user_name=ticket.user_name
|
||||
)
|
||||
|
||||
# Update registered email statistics
|
||||
# Update registered email statistics (only if email is registered)
|
||||
try:
|
||||
registered_email = RegisteredEmail.objects.get(email=validated_data['user_email'])
|
||||
registered_email.increment_ticket_count()
|
||||
logger.info(f'Updated ticket count for registered email: {validated_data["user_email"]}')
|
||||
except RegisteredEmail.DoesNotExist:
|
||||
logger.warning(f'RegisteredEmail not found for {validated_data["user_email"]} after validation')
|
||||
# This is normal now - unregistered users can submit tickets
|
||||
logger.info(f'Ticket created by unregistered email: {validated_data["user_email"]}')
|
||||
|
||||
# Send email notifications
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user