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