"""Notify a user via twilio """ import structlog from twilio.rest import Client from notifiers.utils import NotifierUtils class TwilioNotifier(NotifierUtils): """Class for handling twilio notifications """ def __init__(self, twilio_key, twilio_secret, twilio_sender_number, twilio_receiver_number): """Initialize TwilioNotifer class Args: twilio_key (str): They API key for authenticating to twilio. twilio_secret (str): They API secret for authenticating to twilio. twilio_sender_number (str): The twilio sender number to use. twilio_receiver_number (str): The user recipient number. """ self.logger = structlog.get_logger() self.twilio_sender_number = twilio_sender_number self.twilio_receiver_number = twilio_receiver_number self.twilio_client = Client(twilio_key, twilio_secret) def notify(self, message): """Sends the message. Args: message (str): The message to send. """ max_message_size = 1600 message_chunks = self.chunk_message(message=message, max_message_size=max_message_size) for message_chunk in message_chunks: self.twilio_client.api.account.messages.create( to=self.twilio_receiver_number, from_=self.twilio_sender_number, body=message_chunk )