"""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