Beispiel #1
0
def process_incoming_message(*args, **kwargs):
    try:
        from corehq.messaging.smsbackends.telerivet.views import TELERIVET_INBOUND_FIELD_MAP
        fields = {a: kwargs[a] for (a, b) in TELERIVET_INBOUND_FIELD_MAP}
        log = IncomingRequest(**fields)
        log.save()
    except Exception as e:
        notify_exception(None, "Could not save Telerivet log entry")
        pass

    backend = SQLTelerivetBackend.by_webhook_secret(kwargs["secret"])
    if backend is None:
        # Ignore the message if the webhook secret is not recognized
        return

    if kwargs["from_number_e164"]:
        from_number = strip_plus(kwargs["from_number_e164"])
    else:
        from_number = strip_plus(kwargs["from_number"])

    if kwargs["event"] == EVENT_INCOMING:
        if kwargs["message_type"] == MESSAGE_TYPE_SMS:
            domain_scope = backend.domain if not backend.is_global else None
            incoming_sms(from_number, kwargs["content"], SQLTelerivetBackend.get_api_id(),
                domain_scope=domain_scope, backend_id=backend.couch_id)
        elif kwargs["message_type"] == MESSAGE_TYPE_CALL:
            log_call(from_number, "TELERIVET-%s" % kwargs["message_id"], backend=backend)
Beispiel #2
0
def process_incoming_message(*args, **kwargs):
    try:
        from corehq.messaging.smsbackends.telerivet.views import TELERIVET_INBOUND_FIELD_MAP
        fields = {a: kwargs[a] for (a, b) in TELERIVET_INBOUND_FIELD_MAP}
        log = IncomingRequest(**fields)
        log.save()
    except Exception as e:
        notify_exception(None, "Could not save Telerivet log entry")
        pass

    backend = SQLTelerivetBackend.by_webhook_secret(kwargs["secret"])
    if backend is None:
        # Ignore the message if the webhook secret is not recognized
        return

    if kwargs["from_number_e164"]:
        from_number = strip_plus(kwargs["from_number_e164"])
    else:
        from_number = strip_plus(kwargs["from_number"])

    if kwargs["event"] == EVENT_INCOMING:
        if kwargs["message_type"] == MESSAGE_TYPE_SMS:
            domain_scope = backend.domain if not backend.is_global else None
            incoming_sms(from_number,
                         kwargs["content"],
                         SQLTelerivetBackend.get_api_id(),
                         domain_scope=domain_scope,
                         backend_id=backend.couch_id)
        elif kwargs["message_type"] == MESSAGE_TYPE_CALL:
            incoming_ivr(from_number, "TELERIVET-%s" % kwargs["message_id"],
                         None)
Beispiel #3
0
    def get_last_inbound_sms(self, data):
        request_token = data.get("request_token")
        if not request_token:
            return {"success": False}

        webhook_secret = self.get_cached_webhook_secret(request_token)
        if not webhook_secret:
            return {"success": False}

        result = IncomingRequest.get_last_sms_by_webhook_secret(webhook_secret)
        if result:
            return {"success": True, "found": True}
        else:
            return {"success": True, "found": False}
Beispiel #4
0
def get_last_inbound_sms(request, domain):
    request_token = request.GET.get('request_token', None)
    if not request_token:
        return json_response({'success': False})

    webhook_secret = TelerivetSetupView.get_cached_webhook_secret(request_token)
    if not webhook_secret:
        return json_response({'success': False})

    result = IncomingRequest.get_last_sms_by_webhook_secret(webhook_secret)
    if result:
        return json_response({
            'success': True,
            'found': True,
        })
    else:
        return json_response({
            'success': True,
            'found': False,
        })
Beispiel #5
0
    def get_last_inbound_sms(self, data):
        request_token = data.get('request_token')
        if not request_token:
            return {'success': False}

        webhook_secret = self.get_cached_webhook_secret(request_token)
        if not webhook_secret:
            return {'success': False}

        result = IncomingRequest.get_last_sms_by_webhook_secret(webhook_secret)
        if result:
            return {
                'success': True,
                'found': True,
            }
        else:
            return {
                'success': True,
                'found': False,
            }
Beispiel #6
0
def get_last_inbound_sms(request, domain):
    request_token = request.GET.get('request_token', None)
    if not request_token:
        return json_response({'success': False})

    webhook_secret = TelerivetSetupView.get_cached_webhook_secret(request_token)
    if not webhook_secret:
        return json_response({'success': False})

    result = IncomingRequest.get_last_sms_by_webhook_secret(webhook_secret)
    if result:
        return json_response({
            'success': True,
            'found': True,
        })
    else:
        return json_response({
            'success': True,
            'found': False,
        })
Beispiel #7
0
    def get_last_inbound_sms(self, data):
        request_token = data.get('request_token')
        if not request_token:
            return {'success': False}

        webhook_secret = self.get_cached_webhook_secret(request_token)
        if not webhook_secret:
            return {'success': False}

        result = IncomingRequest.get_last_sms_by_webhook_secret(webhook_secret)
        if result:
            return {
                'success': True,
                'found': True,
            }
        else:
            return {
                'success': True,
                'found': False,
            }