diff --git a/care/facility/api/serializers/patient.py b/care/facility/api/serializers/patient.py index 9326fc03a3..d3587e3b33 100644 --- a/care/facility/api/serializers/patient.py +++ b/care/facility/api/serializers/patient.py @@ -48,9 +48,6 @@ from care.utils.notification_handler import NotificationGenerator from care.utils.queryset.facility import get_home_facility_queryset from care.utils.serializer.external_id_field import ExternalIdSerializerField -from care.utils.serializer.phonenumber_ispossible_field import ( - PhoneNumberIsPossibleField, -) from config.serializers import ChoiceField @@ -165,8 +162,6 @@ class Meta: model = PatientTeleConsultation fields = "__all__" - phone_number = PhoneNumberIsPossibleField() - facility = ExternalIdSerializerField( queryset=Facility.objects.all(), required=False ) @@ -417,7 +412,6 @@ def create(self, validated_data): class PatientSearchSerializer(serializers.ModelSerializer): gender = ChoiceField(choices=GENDER_CHOICES) - phone_number = PhoneNumberIsPossibleField() patient_id = serializers.UUIDField(source="external_id", read_only=True) # facility_id = serializers.UUIDField(read_only=True, allow_null=True) diff --git a/care/facility/api/serializers/shifting.py b/care/facility/api/serializers/shifting.py index b8e7e18bf9..782ace2e91 100644 --- a/care/facility/api/serializers/shifting.py +++ b/care/facility/api/serializers/shifting.py @@ -27,9 +27,6 @@ from care.users.api.serializers.user import UserBaseMinimumSerializer from care.utils.notification_handler import NotificationGenerator from care.utils.serializer.external_id_field import ExternalIdSerializerField -from care.utils.serializer.phonenumber_ispossible_field import ( - PhoneNumberIsPossibleField, -) from config.serializers import ChoiceField @@ -223,9 +220,7 @@ class ShiftingSerializer(serializers.ModelSerializer): ambulance_driver_name = serializers.CharField( required=False, allow_null=True, allow_blank=True ) - ambulance_phone_number = PhoneNumberIsPossibleField( - required=False, allow_null=True, allow_blank=True - ) + ambulance_number = serializers.CharField( required=False, allow_null=True, allow_blank=True ) diff --git a/care/users/api/serializers/user.py b/care/users/api/serializers/user.py index e3b0edc0db..4e637c003b 100644 --- a/care/users/api/serializers/user.py +++ b/care/users/api/serializers/user.py @@ -16,9 +16,6 @@ from care.users.models import GENDER_CHOICES from care.utils.queryset.facility import get_home_facility_queryset from care.utils.serializer.external_id_field import ExternalIdSerializerField -from care.utils.serializer.phonenumber_ispossible_field import ( - PhoneNumberIsPossibleField, -) from config.serializers import ChoiceField User = get_user_model() @@ -28,8 +25,6 @@ class SignUpSerializer(serializers.ModelSerializer): user_type = ChoiceField(choices=User.TYPE_CHOICES) gender = ChoiceField(choices=GENDER_CHOICES) password = serializers.CharField(write_only=True) - phone_number = PhoneNumberIsPossibleField() - alt_phone_number = PhoneNumberIsPossibleField(required=False, allow_blank=True) class Meta: model = User @@ -269,7 +264,6 @@ class UserSerializer(SignUpSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) - alt_phone_number = PhoneNumberIsPossibleField(required=False, allow_blank=True) home_facility_object = FacilityBareMinimumSerializer( source="home_facility", read_only=True ) diff --git a/care/utils/serializer/phonenumber_ispossible_field.py b/care/utils/serializer/phonenumber_ispossible_field.py deleted file mode 100644 index 8f147e4479..0000000000 --- a/care/utils/serializer/phonenumber_ispossible_field.py +++ /dev/null @@ -1,20 +0,0 @@ -import phonenumbers -from django.utils.translation import gettext_lazy as _ -from phonenumber_field.phonenumber import to_python -from rest_framework import serializers -from rest_framework.exceptions import ValidationError - - -class PhoneNumberIsPossibleField(serializers.CharField): - default_error_messages = {"invalid": _("Enter a valid phone number.")} - - def to_internal_value(self, data): - if self.allow_blank and (not data): - return None - phone_number = to_python(data) - if phone_number and not phonenumbers.is_possible_number(phone_number): - # attempting to check if this is a possible Indian number - phone_number = to_python(data, region="IN") - if phone_number and not phonenumbers.is_possible_number(phone_number): - raise ValidationError(self.error_messages["invalid"]) - return phone_number diff --git a/care/utils/serializer/tests/test_phonenumber_ispossible_field.py b/care/utils/serializer/tests/test_phonenumber_ispossible_field.py deleted file mode 100644 index 90afbec313..0000000000 --- a/care/utils/serializer/tests/test_phonenumber_ispossible_field.py +++ /dev/null @@ -1,29 +0,0 @@ -from unittest import TestCase - -from rest_framework.exceptions import ValidationError - -from care.utils.serializer.phonenumber_ispossible_field import ( - PhoneNumberIsPossibleField, -) - - -class TestPhoneNumberIsPossibleField(TestCase): - def test_phone_number(self): - # map -> input value -> output value - # if output value is None, the it is invalid - - test_cases = { - "7795937091": "+917795937091", - "07795937091": "+917795937091", - "+917795937091": "+917795937091", - "+1 470-485-8757": "+14704858757", - "+18944775567": "+18944775567", - "+911234": None, - } - - for ip, op in test_cases.items(): - if op is None: - with self.assertRaises(ValidationError): - PhoneNumberIsPossibleField().to_internal_value(ip) - else: - self.assertEqual(PhoneNumberIsPossibleField().to_internal_value(ip), op) diff --git a/requirements/base.txt b/requirements/base.txt index 4eef4318a3..c7a5fbc7f5 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -31,8 +31,6 @@ django-cors-headers==3.2.1 django-watchman==1.1.0 # For Status Endpoints dateparser==0.7.4 # date parsing utils django-maintenance-mode==0.14.0 # Maintenance mode -django-phonenumber-field==4.0.0 -phonenumberslite==8.12.1 django-queryset-csv==1.1.0 django-rest-passwordreset==1.1.0 healthy-django>=0.1.0