Exemplo n.º 1
0
def fallback_handler(verified_number, text, msg):
    domain_obj = Domain.get_by_name(verified_number.domain, strict=True)

    logged_event = MessagingEvent.create_event_for_adhoc_sms(
        verified_number.domain,
        recipient=verified_number.owner,
        content_type=MessagingEvent.CONTENT_SMS,
        source=MessagingEvent.SOURCE_UNRECOGNIZED)

    inbound_subevent = logged_event.create_subevent_for_single_sms(
        verified_number.owner_doc_type, verified_number.owner_id)
    inbound_meta = MessageMetadata(workflow=WORKFLOW_DEFAULT,
                                   messaging_subevent_id=inbound_subevent.pk)
    add_msg_tags(msg, inbound_meta)

    if domain_obj.use_default_sms_response and domain_obj.default_sms_response:
        outbound_subevent = logged_event.create_subevent_for_single_sms(
            verified_number.owner_doc_type, verified_number.owner_id)
        outbound_meta = MessageMetadata(
            workflow=WORKFLOW_DEFAULT,
            location_id=msg.location_id,
            messaging_subevent_id=outbound_subevent.pk)
        send_sms_to_verified_number(verified_number,
                                    domain_obj.default_sms_response,
                                    metadata=outbound_meta)
        outbound_subevent.completed()

    inbound_subevent.completed()
    logged_event.completed()
    return True
Exemplo n.º 2
0
def forward_sms(msg, domain, verified_number, text, backend_id):
    logged_event = MessagingEvent.create_event_for_adhoc_sms(
        domain,
        recipient=verified_number.owner,
        content_type=MessagingEvent.CONTENT_SMS,
        source=MessagingEvent.SOURCE_FORWARDED)

    inbound_subevent = logged_event.create_subevent_for_single_sms(
        verified_number.owner_doc_type, verified_number.owner_id)
    inbound_meta = MessageMetadata(workflow=WORKFLOW_FORWARD,
                                   messaging_subevent_id=inbound_subevent.pk)
    add_msg_tags(msg, inbound_meta)

    outbound_subevent = logged_event.create_subevent_for_single_sms(
        verified_number.owner_doc_type, verified_number.owner_id)
    outbound_meta = MessageMetadata(workflow=WORKFLOW_FORWARD,
                                    messaging_subevent_id=outbound_subevent.pk)

    send_sms_with_backend(domain,
                          verified_number.phone_number,
                          text,
                          backend_id,
                          metadata=outbound_meta)

    outbound_subevent.completed()
    inbound_subevent.completed()
    logged_event.completed()
Exemplo n.º 3
0
def fallback_handler(v, text, msg):
    domain_obj = Domain.get_by_name(v.domain, strict=True)

    logged_event = MessagingEvent.create_event_for_adhoc_sms(
        v.domain, recipient=v.owner, content_type=MessagingEvent.CONTENT_SMS,
        source=MessagingEvent.SOURCE_UNRECOGNIZED)

    inbound_subevent = logged_event.create_subevent_for_single_sms(
        v.owner_doc_type, v.owner_id)
    inbound_meta = MessageMetadata(workflow=WORKFLOW_DEFAULT,
        messaging_subevent_id=inbound_subevent.pk)
    add_msg_tags(msg, inbound_meta)

    if domain_obj.use_default_sms_response and domain_obj.default_sms_response:
        outbound_subevent = logged_event.create_subevent_for_single_sms(
            v.owner_doc_type, v.owner_id)
        outbound_meta = MessageMetadata(workflow=WORKFLOW_DEFAULT,
            location_id=msg.location_id,
            messaging_subevent_id=outbound_subevent.pk)
        send_sms_to_verified_number(v, domain_obj.default_sms_response,
            metadata=outbound_meta)
        outbound_subevent.completed()

    inbound_subevent.completed()
    logged_event.completed()
    return True
Exemplo n.º 4
0
 def _send_fallback_message(self, msg):
     logged_event = MessagingEvent.create_event_for_adhoc_sms(
         self.domain, recipient=msg.recipient)
     logged_subevent = logged_event.create_subevent_for_single_sms(
         recipient_doc_type=msg.recipient.doc_type,
         recipient_id=msg.recipient.get_id)
     metadata = MessageMetadata(
         messaging_subevent_id=logged_subevent.pk,
         custom_metadata={"fallback": "WhatsApp Contact Not Found"},
     )
     if send_sms_with_backend(self.domain, msg.phone_number, msg.text,
                              self.config.fallback_backend_id, metadata):
         logged_subevent.completed()
         logged_event.completed()
     else:
         logged_subevent.error(MessagingEvent.ERROR_INTERNAL_SERVER_ERROR)
Exemplo n.º 5
0
def forward_sms(msg, domain, verified_number, text, backend_id):
    logged_event = MessagingEvent.create_event_for_adhoc_sms(
        domain, recipient=verified_number.owner,
        content_type=MessagingEvent.CONTENT_SMS,
        source=MessagingEvent.SOURCE_FORWARDED)

    inbound_subevent = logged_event.create_subevent_for_single_sms(
        verified_number.owner_doc_type, verified_number.owner_id)
    inbound_meta = MessageMetadata(workflow=WORKFLOW_FORWARD,
        messaging_subevent_id=inbound_subevent.pk)
    add_msg_tags(msg, inbound_meta)

    outbound_subevent = logged_event.create_subevent_for_single_sms(
        verified_number.owner_doc_type, verified_number.owner_id)
    outbound_meta = MessageMetadata(workflow=WORKFLOW_FORWARD,
        messaging_subevent_id=outbound_subevent.pk)

    send_sms_with_backend(domain, verified_number.phone_number, text,
        backend_id, metadata=outbound_meta)

    outbound_subevent.completed()
    inbound_subevent.completed()
    logged_event.completed()