fix: get phone number details using phonenumbers
This commit is contained in:
parent
b212dac043
commit
ccdada9c71
29
crm/utils/__init__.py
Normal file
29
crm/utils/__init__.py
Normal 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)}
|
||||||
Loading…
x
Reference in New Issue
Block a user