syncano.models.push_notification

class DeviceBase[source]

Bases: object

Base abstract class for GCM and APNS Devices;

registration_id = None
device_id = None
is_active = None
label = None
user = None
created_at = None
updated_at = None
class Meta[source]
abstract = True
DeviceBase.send_message(content)[source]

A method which allows to send message directly to the device; :param contet: Message content structure - object like; :return:

class GCMDevice(**kwargs)[source]

Bases: syncano.models.push_notification.DeviceBase, syncano.models.archetypes.Model

Model which handles the Google Cloud Message Device. CORE supports only Create, Delete and Read;

Usage:

Create a new Device:
gcm_device = GCMDevice(
    label='example label',
    registration_id=86152312314401555,
    user_id=u.id,
    device_id='10000000001',
)

gcm_device.save()

Read:
gcm_device = GCMDevice.please.get(registration_id=86152312314401554)

Delete:
gcm_device.delete()

Update:
gcm_device.label = 'some new label'
gcm_device.save()
DoesNotExist

alias of GCMDeviceDoesNotExist

created_at = None
device_id = None
instance_name = None
is_active = None
label = None
pk = None
please
registration_id = None
updated_at = None
user = None
class APNSDevice(**kwargs)[source]

Bases: syncano.models.push_notification.DeviceBase, syncano.models.archetypes.Model

Model which handles the Apple Push Notification Server Device. CORE supports only Create, Delete and Read;

Usage:

Create a new Device:
apns_device = APNSDevice(
    label='example label',
    registration_id='4719084371920471208947120984731208947910827409128470912847120894',
    user_id=u.id,
    device_id='7189d7b9-4dea-4ecc-aa59-8cc61a20608a',
)
apns_device.save()

Read:
apns_device =
    APNSDevice.please.get(registration_id='4719084371920471208947120984731208947910827409128470912847120894')

Delete:
apns_device.delete()

Update:
apns_device.label = 'some new label'
apns_device.save()

Note

Also note the different format (from GCM) of registration_id required by APNS; the device_id have different format too.

DoesNotExist

alias of APNSDeviceDoesNotExist

created_at = None
device_id = None
instance_name = None
is_active = None
label = None
pk = None
please
registration_id = None
updated_at = None
user = None
class MessageBase[source]

Bases: object

Base abstract class for GCM and APNS Messages;

status = None
content = None
result = None
created_at = None
updated_at = None
class Meta[source]
abstract = True
class GCMMessage(**kwargs)[source]

Bases: syncano.models.push_notification.MessageBase, syncano.models.archetypes.Model

Model which handles the Google Cloud Messaging Message. Only creating and reading is allowed.

Usage:

Create a new Message:

message = GCMMessage(
    content={
        'registration_ids': [gcm_device.registration_id],  # maximum 1000 elements;
        'data': {
            'example_data_one': 1,
            'example_data_two': 2,
        }
    }
)
message.save()


Read:

gcm_message = GCMMessage.please.get(id=1)

Debugging:

gcm_message.status - on of the (scheduled, error, partially_delivered, delivered)
gcm_message.result - a result from GCM server;

The data parameter is passed as-it-is to the GCM server; Base checking is made on syncano CORE; For more details read the GCM documentation;

Note

Every save after initial one will raise an error;

Note

The altering of existing Message is not possible. It also not possible to delete message.

DoesNotExist

alias of GCMMessageDoesNotExist

content = None
created_at = None
id = None
instance_name = None
pk = None
please
result = None
status = None
updated_at = None
class APNSMessage(**kwargs)[source]

Bases: syncano.models.push_notification.MessageBase, syncano.models.archetypes.Model

Model which handles the Apple Push Notification Server Message. Only creating and reading is allowed.

Usage:

Create new Message:
apns_message = APNSMessage(
    content={
        'registration_ids': [gcm_device.registration_id],
        'aps': {'alert': 'test alert'},
    }
)

apns_message.save()

Read:

apns_message = APNSMessage.please.get(id=1)

Debugging:

apns_message.status - one of the following: scheduled, error, partially_delivered, delivered;
apns_message.result - a result from APNS server;

The ‘aps’ data is send ‘as-it-is’ to APNS, some validation is made on syncano CORE; For more details read the APNS documentation;

Note

Every save after initial one will raise an error;

DoesNotExist

alias of APNSMessageDoesNotExist

content = None
created_at = None
id = None
instance_name = None
pk = None
please
result = None
status = None
updated_at = None
class GCMConfig(**kwargs)[source]

Bases: syncano.models.archetypes.Model

A model which stores information with GCM Push keys;

Usage:

Add (modify) new keys:
gcm_config = GCMConfig(production_api_key='ccc', development_api_key='ddd')
gcm_config.save()

or:
gcm_config = GCMConfig().please.get()
gcm_config.production_api_key = 'ccc'
gcm_config.development_api_key = 'ddd'
gcm_config.save()
production_api_key = None
development_api_key = None
is_new()[source]
DoesNotExist

alias of GCMConfigDoesNotExist

id = None
instance_name = None
pk = None
please
class APNSConfig(**kwargs)[source]

Bases: syncano.models.archetypes.Model

A model which stores information with APNS Push certificates;

Usage:

Add (modify) new keys:
cert_file = open('cert_file.p12', 'rb')
apns_config = APNSConfig(development_certificate=cert_file)
apns_config.save()
cert_file.close()
production_certificate_name = None
production_certificate = None
production_bundle_identifier = None
production_expiration_date = None
development_certificate_name = None
development_certificate = None
development_bundle_identifier = None
development_expiration_date = None
is_new()[source]
DoesNotExist

alias of APNSConfigDoesNotExist

id = None
instance_name = None
pk = None
please