Source code for util.customer_api_data_formatter
import re
from exceptions.task_exception import NumberFormatError, NumberFormatWrongLengthError
[docs]class CustomerDataFormatter:
[docs] def __init__(self, application_dependencies):
"""
Args:
application_dependencies (util.application_dependencies.ApplicationDependencies): Application dependency object used for DI
"""
self.application_dependencies = application_dependencies
[docs] def remove_any_non_digit_characters_from_phone_number(self, number):
"""
Args:
number (str): Number to remove any non integer characters from
Returns:
str: The formatted number with only integers
Raises:
NumberFormatWrongLengthError: When the extracted numbers is not the length of 10 or 11
NumberFormatError: When a number can not be formatted e.i. not type string
"""
logger = self.application_dependencies.get_default_logger()
number = str(number)
try:
formatted_number_list = re.findall(r"\d+", number)
formatted_number = "".join(formatted_number_list)
number_length = len(formatted_number)
if not (number_length is 11 or number_length is 12):
raise NumberFormatWrongLengthError
return formatted_number
except TypeError:
logger.error("An error occurred when trying to format the mobile number")
raise NumberFormatError