Esempio n. 1
0
    def render(self, request):
        """
        :type request: bouser.web.request.BouserRequest
        :param request:
        :return:
        """
        self.web.crossdomain(request, allow_credentials=True)
        main, sub = request.get_content_type()
        if not main:
            main, sub = 'application', 'json'
        content = request.content.getvalue()
        if sub in ('msgpack', 'application/x-msgpack'):
            data = load(content)
        elif sub == 'json':
            data = json.loads(content, 'utf-8')
        else:
            request.setResponseCode(400, 'Unknown Content Type')
            return ''

        message = Message.from_json(data)

        self.simargl.message_received(self, message)

        request.setHeader('content-type', 'application/json; charset=utf-8')
        return as_json({'success': True})
Esempio n. 2
0
 def as_message(self):
     message = Message()
     message.immediate = False
     message.sender = self.sender
     message.recipient = self.recipient
     message.tags = set(self.tags)
     message.data = self.data
Esempio n. 3
0
 def as_message(self):
     from bouser_simargl.message import Message
     message = Message()
     message.topic = 'errand'
     message.sender = self.setPerson_id
     message.recipient = self.execPerson_id
     message.tags = set()
     message.data = {
         'text': self.text,
         'communications': self.communications
     }
     return message
Esempio n. 4
0
 def loop(self):
     message = Message()
     message.control = True
     message.topic = 'heartbeat'
     message.data = {'ts': time.time()}
     self.simargl.message_received(self, message)