Stay informed of it
Project description
Django Whisperer
Whisperer informs subscribed users via an URL when a specific event occurs.
Installation
Installation using pip:
pip install dj-whisperer
whisperer
package has to be added to INSTALLED_APPS
and migrate
command has to be run.
INSTALLED_APPS = (
# other apps here...
'whisperer',
)
Sample Scenario
Let's give an example using Package
model. When an event occurs related to a package, subscribed users are gonna be informed. To do so, firstly which events to subscribe must be determined. In order to learn when a package created:
from django.db.models.signals import post_save
from whisperer.events import WhispererEvent, registry
from whisperer.tasks import deliver_event
class PackageCreateEvent(WhispererEvent):
serializer_class = PackageSerializer
event_type = 'package-created'
registry.register(PackageCreateEvent)
def signal_receiver(instance, created=False, **kwargs):
if created:
deliver_event(instance, 'package-created')
post_save.connect(signal_receiver, Package)
When database transaction succeeds, in short when transaction.on_commit()
, deliver_event
must be triggered.
Subscribed users now can be informed that a package created if they have created a Webhook
.
import requests
requests.post(
url='https://your-app.com/whisperer/hooks/',
headers={
'Authorization': 'Token <secret-login-token>',
},
json={
'event_type': 'package-created',
'secret_key': 'secret',
'target_url': 'https://example.com/',
}
)
When a package created, uuid
, type
& data
passed through PackageSerializer
will be posted to https://example.com/.
import requests
requests.post(
url='https://example.com/',
headers={
'Content-Type': 'application/json',
'X-Whisperer-Event': 'package-created',
},
json={
'event': {
'type': 'package-created',
'uuid': 'da81e85139824c6187dd1e58a7d3f971',
},
'data': {
'id': 61,
'transfer_id': 49,
'order_number': '248398923123',
'.....': '......',
}
}
)
In order to cancel the subscription:
import requests
requests.delete(
url='https://your-app.com/whisperer/hooks/<webhook-id>/',
headers={
'Authorization': 'Token <secret-login-token>',
}
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dj_whisperer-0.2.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 696ea75be327f22eaca150cd8e295e5c203d87509e837fb31813572812f57cec |
|
MD5 | 807893857b037c7a7dfc70d5b555f46c |
|
BLAKE2b-256 | 36f0c3d1fb78f24f8ce2d4c6486e209a0cf9bc6c083404f00d9c0951e4d4056d |