예제 #1
0
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