fix: check if two numbers are same
This commit is contained in:
parent
ccdada9c71
commit
7301e8d62c
@ -27,3 +27,34 @@ def parse_phone_number(phone_number, default_country="IN"):
|
||||
return {"success": True, **result}
|
||||
except NumberParseException as e:
|
||||
return {"success": False, "error": str(e)}
|
||||
|
||||
|
||||
def are_same_phone_number(number1, number2, default_region="IN", validate=True):
|
||||
"""
|
||||
Check if two phone numbers are the same, regardless of their format.
|
||||
|
||||
Args:
|
||||
number1 (str): First phone number
|
||||
number2 (str): Second phone number
|
||||
default_region (str): Default region code for parsing ambiguous numbers
|
||||
|
||||
Returns:
|
||||
bool: True if numbers are same, False otherwise
|
||||
"""
|
||||
try:
|
||||
# Parse both numbers
|
||||
parsed1 = phonenumbers.parse(number1, default_region)
|
||||
parsed2 = phonenumbers.parse(number2, default_region)
|
||||
|
||||
# Check if both numbers are valid
|
||||
if validate and not (phonenumbers.is_valid_number(parsed1) and phonenumbers.is_valid_number(parsed2)):
|
||||
return False
|
||||
|
||||
# Convert both to E164 format and compare
|
||||
formatted1 = phonenumbers.format_number(parsed1, phonenumbers.PhoneNumberFormat.E164)
|
||||
formatted2 = phonenumbers.format_number(parsed2, phonenumbers.PhoneNumberFormat.E164)
|
||||
|
||||
return formatted1 == formatted2
|
||||
|
||||
except phonenumbers.NumberParseException:
|
||||
return False
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user