shiftregister/shiftregister/messaging/backends/dummy.py

48 lines
1.2 KiB
Python

import logging
from pprint import pformat
from uuid import uuid4
from ..message import Message, MessageType
from .abc import Receiver as BaseReceiver
from .abc import Sender as BaseSender
logger = logging.getLogger(__name__)
def make_dummy_message():
return Message(
uuid4(),
sender="+4915228817386",
text="Test Message Please Ignore",
type=MessageType.INBOUND,
)
class Receiver(BaseReceiver):
def fetch(self):
yield make_dummy_message()
handle = None
class Sender(BaseSender):
def send(self, messages):
for message in messages:
logger.info(f"would send sms\nto: {message.recipient}\n\n{message.text}")
yield message
class WebhookReceiver(BaseReceiver):
fetch = None
def handle(self, key="", sender="", text="", **kwargs):
if not key:
raise ValueError("empty message key")
if not sender:
raise ValueError("message has no sender")
logging.getLogger("django.server").info(
f"received sms via webhook\nkey: {key}\nfrom: {sender}\nadditional fields: {pformat(kwargs)}\n\n{text}"
)
yield Message(key, sender=sender, text=text, type=MessageType.INBOUND)