Exemplo n.º 1
0
 def retrieve(self, pk):
     """
     Retrieves the subscriptions for a given subscriber
     """
     try:
         pk = int(pk)
     except (ValueError, TypeError):
         return Response(status=status.HTTP_400_BAD_REQUEST)
     return Response(MessageController.subscriptions(pk), status=status.HTTP_200_OK)
Exemplo n.º 2
0
 def wait(self, pk, message_id):
     """
     Wait for messages to appear for a given subscriber
     """
     try:
         pk = int(pk)
         message_id = int(message_id)
     except (ValueError, TypeError):
         return Response(status=status.HTTP_400_BAD_REQUEST)
     thread = gevent.spawn(MessagingViewSet._wait, pk, message_id)
     gevent.joinall([thread])
     messages, last_message_id = thread.value
     return Response({'messages'       : messages,
                      'last_message_id': last_message_id,
                      'subscriptions'  : MessageController.subscriptions(pk)}, status=status.HTTP_200_OK)
Exemplo n.º 3
0
 def wait(self, pk, message_id):
     """
     Wait for messages to appear for a given subscriber
     :param pk: Primary key of subscriber
     :type pk: int
     :param message_id: The last message_id that was already received
     :type message_id: str
     """
     try:
         pk = int(pk)
         message_id = int(message_id)
     except (ValueError, TypeError):
         return Response(status=status.HTTP_400_BAD_REQUEST)
     thread = gevent.spawn(MessagingViewSet._wait, pk, message_id)
     gevent.joinall([thread])
     result = thread.value
     if result is None:
         messages = []
         last_message_id = message_id
     else:
         messages, last_message_id = thread.value
     return Response({'messages': messages,
                      'last_message_id': last_message_id,
                      'subscriptions': MessageController.subscriptions(pk)}, status=status.HTTP_200_OK)