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