Ejemplo n.º 1
0
    def post(self, request):
        post_data = json.loads(request.body)
        channel_name = None
        if 'channel' in post_data:
            channel_name = post_data['channel']

        deviceToken = post_data['token']
        browser = post_data['browser']
        deviceId = post_data['device_id']

        name = "-"
        if request.user.is_authenticated():
            name = request.user.username

        # Create il subscriber if it doesn't exist
        subscriber, created = Subscriber.objects.update_or_create(
            device_id=deviceId,
            defaults={
                'sub_type': browser,
                'sandbox': False,
                'enabled': True,
                'name': name,
                'token': deviceToken
            })

        # Channel subscription
        if channel_name is not None:
            channel = get_object_or_404(Channel, name=channel_name)
            ask_subscribe_channel(channel, deviceId)

        return HttpResponse(status=201 if created else 200)
Ejemplo n.º 2
0
    def post(self, request):
        post_data = json.loads(request.body)
        channel_name = None
        if 'channel' in post_data:
            channel_name = post_data['channel']

        deviceToken = post_data['token']
        browser = post_data['browser']
        deviceId = post_data['device_id']
        
        name = "-"
        if request.user.is_authenticated():
            name = request.user.username

        # Create il subscriber if it doesn't exist
        subscriber, created = Subscriber.objects.update_or_create(device_id=deviceId,
                                                               defaults={'sub_type': browser,
                                                                         'sandbox': False, 'enabled': True,
                                                                         'name': name,
                                                                         'token': deviceToken})

        # Channel subscription
        if channel_name is not None:
            channel = get_object_or_404(Channel, name=channel_name)
            ask_subscribe_channel(channel, deviceId)

        return HttpResponse(status=201 if created else 200)
Ejemplo n.º 3
0
    def post(self, request, format=None, name=None):
        """
        Subscribe to the Channel identified by "name"
        """
        channels = Channel.objects.filter(name=name)
        if not channels:
            logger.error("Subscribe to inexistent channel : " + name)
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = ChannelSubscriptionSerializer(data=request.DATA)
        if serializer.is_valid():
            subscriber_data = serializer.object
            channel = channels[0]
            subscribe_resp = ask_subscribe_channel(
                channel, subscriber_data['device_id'])

            if subscribe_resp == SubscribeResponse.SUBSCRIBED:
                return Response(serializer.data,
                                status=status.HTTP_201_CREATED)
            else:
                return Response(
                    status=(status.HTTP_202_ACCEPTED if subscribe_resp ==
                            SubscribeResponse.REQUEST_SEND else status.
                            HTTP_400_BAD_REQUEST))
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)
Ejemplo n.º 4
0
    def post(self, request, format=None, name=None):
        """
        Subscribe to the Channel identified by "name"
        """
        channels = Channel.objects.filter(name=name)
        if not channels:
            logger.error("Subscribe to inexistent channel : " + name)
            return Response(status=status.HTTP_404_NOT_FOUND)

        serializer = ChannelSubscriptionSerializer(data=request.DATA)
        if serializer.is_valid():
            subscriber_data = serializer.object
            channel = channels[0]
            subscribe_resp = ask_subscribe_channel(channel, subscriber_data['device_id'])

            if subscribe_resp == SubscribeResponse.SUBSCRIBED:
                return Response(serializer.data, status=status.HTTP_201_CREATED)
            else:
                return Response(status=(status.HTTP_202_ACCEPTED if subscribe_resp == SubscribeResponse.REQUEST_SEND
                                        else status.HTTP_400_BAD_REQUEST))
        else:
            return Response(status=status.HTTP_400_BAD_REQUEST)