Beispiel #1
0
    def _receive_message(self, message_type):
        msg = ReceivedSMSMessage(message_type, request_url=request.url)
        msg.success = False
        msg.test = bool(request.params.get('test', False))
        msg.sender_phone_number = request.params.get('sender')
        msg.message_text = request.params.get('message')
        msg.sender = User.get_byphone('+' + msg.sender_phone_number)
        meta.Session.add(msg)
        log.info('Fortumo notification "%s" from +%s: text: %s; url: %s' % (
                msg.message_type, msg.sender_phone_number, msg.message_text,
                msg.request_url))
        if not msg.check_fortumo_sig():
            # Something fishy is going on...
            meta.Session.commit()
            raise ValueError('Invalid Fortumo signature!')

        handler = getattr(self, '_handle_%s' % message_type)
        text = handler(msg)
        msg.result = text
        meta.Session.commit()
        return text