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)
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)
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)