1
0
forked from test/crm

fix: get phone number details using phonenumbers

This commit is contained in:
Shariq Ansari 2025-01-17 20:14:32 +05:30
parent b212dac043
commit ccdada9c71

29
crm/utils/__init__.py Normal file
View File

@ -0,0 +1,29 @@
import phonenumbers
from phonenumbers import NumberParseException
from phonenumbers import PhoneNumberFormat as PNF
def parse_phone_number(phone_number, default_country="IN"):
try:
# Parse the number
number = phonenumbers.parse(phone_number, default_country)
# Get various information about the number
result = {
"is_valid": phonenumbers.is_valid_number(number),
"country_code": number.country_code,
"national_number": str(number.national_number),
"formats": {
"international": phonenumbers.format_number(number, PNF.INTERNATIONAL),
"national": phonenumbers.format_number(number, PNF.NATIONAL),
"E164": phonenumbers.format_number(number, PNF.E164),
"RFC3966": phonenumbers.format_number(number, PNF.RFC3966),
},
"type": phonenumbers.number_type(number),
"country": phonenumbers.region_code_for_number(number),
"is_possible": phonenumbers.is_possible_number(number),
}
return {"success": True, **result}
except NumberParseException as e:
return {"success": False, "error": str(e)}