def post(self, request, format=None):

        serializer = SubscriberSerializer(data=request.DATA)
        if serializer.is_valid():

            is_sandbox = (True if settings.ENVIRONMENT == "dev" else False)
            subscriber_data = serializer.object

            subscriber, created = Subscriber.objects.get_or_create(device_id=subscriber_data["device_id"],
                                                                   defaults={'sub_type': subscriber_data["sub_type"],
                                                                             'sandbox': is_sandbox, 'enabled': True,
                                                                             'name': subscriber_data["name"],
                                                                             'token': subscriber_data["token"]})

            if not created:
                subscriber.token = subscriber_data["token"]
                subscriber.name = subscriber_data["name"]

            subscriber.save()

            # Update del token nelle subscription del device
            subMamager = SubscriberManager()
            channel_subscriptions = subMamager.get_device_subscriptions(subscriber_data["device_id"])
            for channel_sub in channel_subscriptions:
                subMamager.subscribe(channel_sub, subscriber_data["sub_type"], subscriber_data["device_id"],
                                     subscriber_data["token"])

            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Example #2
0
def pre_remove_subscription(sender, **kwargs):
    subscriber = kwargs.get('instance')
    sub_manager = SubscriberManager()
    subscriptions = sub_manager.get_device_subscriptions(subscriber.device_id)

    logger.info("Delete subscriber ({0} - {1}) signal ".format(subscriber.name, subscriber.sub_type))

    for channel_name in subscriptions:
        unsubscribe_channel(channel, subscriber.device_id)
Example #3
0
def pre_remove_subscription(sender, **kwargs):
    subscriber = kwargs.get('instance')
    sub_manager = SubscriberManager()
    subscriptions = sub_manager.get_device_subscriptions(subscriber.device_id)

    logger.info("Delete subscriber ({0} - {1}) signal ".format(
        subscriber.name, subscriber.sub_type))

    for channel_name in subscriptions:
        unsubscribe_channel(channel, subscriber.device_id)
Example #4
0
    def post(self, request, format=None):

        serializer = SubscriberSerializer(data=request.DATA)
        if serializer.is_valid():

            is_sandbox = (True if settings.ENVIRONMENT == "dev" else False)
            subscriber_data = serializer.object

            subscriber, created = Subscriber.objects.get_or_create(
                device_id=subscriber_data["device_id"],
                defaults={
                    'sub_type': subscriber_data["sub_type"],
                    'sandbox': is_sandbox,
                    'enabled': True,
                    'name': subscriber_data["name"],
                    'token': subscriber_data["token"]
                })

            if not created:
                subscriber.token = subscriber_data["token"]
                subscriber.name = subscriber_data["name"]

            subscriber.save()

            # Update del token nelle subscription del device
            subMamager = SubscriberManager()
            channel_subscriptions = subMamager.get_device_subscriptions(
                subscriber_data["device_id"])
            for channel_sub in channel_subscriptions:
                subMamager.subscribe(channel_sub, subscriber_data["sub_type"],
                                     subscriber_data["device_id"],
                                     subscriber_data["token"])

            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)