Untitled

 avatar
unknown
plain_text
9 months ago
2.5 kB
18
Indexable


class UserSerializer(serializers.ModelSerializer):
    user_type = serializers.HiddenField(default=User.TYPE_CUSTOMER)
    class Meta:
        model = User
        fields = ('id', 'email', 'mobile_number', 'first_name', 'last_name', 'password', 'avatar', 'user_type', 'email_confirmed')
        extra_kwargs = {
            'password': {'write_only': True},
            'email': {'required': True},
            'mobile_number': {'required': True},
            'email_confirmed': {'read_only': True},
        }

    def validate_email(self, value):
        if User.objects.filter(email=value).exists():
            raise serializers.ValidationError("یک حساب کاربری با این ایمیل قبلا ایجاد شده است.")
        return value

    def validate_mobile_number(self, value):
        if User.objects.filter(mobile_number=value).exists():
            raise serializers.ValidationError("یک حساب کاربری با این شماره موبایل قبلا ایجاد شده است.")
        return value

    def validate_password(self, value):
        validate_password(value)
        return value

    def create(self, validated_data):
        user = User.objects.create_user(
            username=validated_data['email'],
            email=validated_data['email'],
            mobile_number=validated_data['mobile_number'],
            password=validated_data['password']
        )
        return user


class SignInSerializer(serializers.Serializer):
    email = serializers.EmailField()
    password = serializers.CharField()


class UserShortDetailSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'first_name', 'last_name', 'avatar')

class ChangePasswordSerializer(serializers.Serializer):
    new_password = serializers.CharField(required=True, min_length=8)


class UserUpdateSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('first_name', 'last_name', 'avatar')


class TokenSerializer(serializers.Serializer):
    token = serializers.CharField()


class GetEmailSerializer(serializers.Serializer):
    email = serializers.EmailField()


class ResetPasswordSerializer(serializers.Serializer):
    password = serializers.CharField(required=True, min_length=8)
    token = serializers.CharField(required=True, min_length=10)


class CheckResetPasswordTokenSerializer(serializers.Serializer):
    token = serializers.CharField(required=True, min_length=10)
Editor is loading...
Leave a Comment