from django_rq import job from push_notifications.apns import APNSError from push_notifications.gcm import GCMError from push_notifications.models import APNSDevice, GCMDevice from rest_framework.settings import api_settings from common.constants import (DEVICE_ANDROID, DEVICE_IOS, NotificationType, NOTIFICATION_TYPE_BROADCAST, USER_TYPE_PAGE, NOTIFICATION_TYPE_INCOMING_VIDEO_CALL) from shoutit.api.serializers import serialize_attached_object from ..models import User, PushBroadcast, Device from ..utils import debug_logger, error_logger, UserIds _apns_devices = GenericRelation('shoutit.Device', related_query_name='apns_devices') APNSDevice.add_to_class('devices', _apns_devices) _gcm_devices = GenericRelation('shoutit.Device', related_query_name='gcm_devices') GCMDevice.add_to_class('devices', _gcm_devices) @job(settings.RQ_QUEUE_PUSH) def send_push(user, notification, version, pushed_for=None, serializing_options=None): from shoutit.controllers.notifications_controller import get_total_unread_count from shoutit.controllers import pusher_controller