gault-millau/apps/account/serializers/web.py

48 lines
1.5 KiB
Python

"""Serializers for account web"""
from django.contrib.auth import password_validation as password_validators
from rest_framework import serializers
from account import models
from utils import exceptions as utils_exceptions
class PasswordResetSerializer(serializers.ModelSerializer):
"""Serializer from model PasswordReset"""
class Meta:
"""Meta class"""
model = models.ResetPasswordToken
fields = ('expiry_datetime', )
def create(self, validated_data, *args, **kwargs):
"""Override create method"""
request = self.context.get('request')
user = request.user
ip_address = request.META.get('REMOTE_ADDR')
obj = models.ResetPasswordToken.objects.create(
user=user,
ip_address=ip_address,
source=models.ResetPasswordToken.MOBILE
)
try:
# todo: make as celery task
obj.send_reset_password_request()
return obj
except:
raise utils_exceptions.EmailSendingError(user.email)
# class PasswordResetConfirmSerializer(serializers.Serializer):
# """Serializer for reset password"""
#
# password = serializers.CharField(write_only=True)
#
# def validate_password(self, data):
# """Custom password validation"""
# try:
# password_validators.validate_password(password=data)
# except serializers.ValidationError as e:
# raise serializers.ValidationError(str(e))
# else:
# return data