41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
|
|
from rest_framework import serializers
|
||
|
|
|
||
|
|
from apps.account.models import phone_validator
|
||
|
|
|
||
|
|
|
||
|
|
class RequestOTPSerializer(serializers.Serializer):
|
||
|
|
phone = serializers.CharField(max_length=15, required=True, label="شماره موبایل")
|
||
|
|
referral_code = serializers.CharField(max_length=8, required=False, allow_blank=True, label="کد معرف")
|
||
|
|
|
||
|
|
def validate_phone(self, value):
|
||
|
|
phone_validator(value)
|
||
|
|
return value
|
||
|
|
|
||
|
|
|
||
|
|
class VerifyOTPSerializer(serializers.Serializer):
|
||
|
|
phone = serializers.CharField(max_length=15, required=True, label="شماره موبایل")
|
||
|
|
otp = serializers.CharField(max_length=6, required=True, label="کد تایید")
|
||
|
|
|
||
|
|
def validate_phone(self, value):
|
||
|
|
phone_validator(value)
|
||
|
|
return value
|
||
|
|
|
||
|
|
def validate(self, attrs):
|
||
|
|
from .services import UserService
|
||
|
|
|
||
|
|
user = UserService.verify_user(attrs["phone"], attrs["otp"])
|
||
|
|
attrs["user"] = user
|
||
|
|
return attrs
|
||
|
|
|
||
|
|
|
||
|
|
class LogoutSerializer(serializers.Serializer):
|
||
|
|
refresh = serializers.CharField(required=True, label="توکن رفرش")
|
||
|
|
|
||
|
|
|
||
|
|
class ConfirmWithOTPSerializer(serializers.Serializer):
|
||
|
|
otp = serializers.CharField(max_length=6, required=True, label="کد تایید")
|
||
|
|
|
||
|
|
|
||
|
|
class ProfileUpdateSerializer(serializers.Serializer):
|
||
|
|
name = serializers.CharField(max_length=100, allow_blank=True, required=False)
|