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