Skip to content

Commit 93012f2

Browse files
authored
Merge pull request #73 from silverlogic/baseapp-push-notifications-fix
refactor: trigger push notification only if device exists
2 parents 78430c7 + b63328d commit 93012f2

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

baseapp-notifications/baseapp_notifications/tasks.py

+15-9
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,32 @@ def send_push_notification(
1313
WNSDevice,
1414
)
1515

16+
if not push_description:
17+
raise Exception("push_description is required")
18+
1619
# send messages to all Apple devices
1720
apple_devices = APNSDevice.objects.filter(user__id=user_id)
18-
if apple_devices and push_title and push_description:
19-
message = {"title": force_str(push_title), "body": force_str(push_description)}
2021
if apple_devices:
2122
message = force_str(push_description)
22-
apple_devices.send_message(message=message, extra=extra)
23+
if push_title and push_description:
24+
message = {"title": force_str(push_title), "body": force_str(push_description)}
25+
apple_devices.send_message(message=message, extra=extra)
2326

2427
# send messages to all Android devices
2528
android_devices = GCMDevice.objects.filter(user__id=user_id)
26-
if android_devices and push_description:
29+
if android_devices:
2730
message = force_str(push_description)
28-
if push_title:
29-
extra.update({"title": force_str(push_title)})
30-
android_devices.send_message(message=message, extra=extra)
31+
if push_title and push_description:
32+
android_devices.send_message(message, title=push_title, extra=extra)
33+
else:
34+
android_devices.send_message(message=message, extra=extra)
3135

3236
# TO DO: send messages to all Windows devices
3337
windows_devices = WNSDevice.objects.filter(user__id=user_id)
34-
windows_devices.send_message(message=message, extra=extra)
38+
if windows_devices:
39+
windows_devices.send_message(message=message, extra=extra)
3540

3641
# TO DO: send messages to all Web devices
3742
web_devices = WebPushDevice.objects.filter(user__id=user_id)
38-
web_devices.send_message(message=message, extra=extra)
43+
if web_devices:
44+
web_devices.send_message(message=message, extra=extra)

baseapp-notifications/setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[metadata]
22
name = baseapp_notifications
3-
version = 0.1.8
3+
version = 0.2.0
44
description = BaseApp Notifications
55
long_description = file: README.md
66
url = https://github.com/silverlogic/baseapp-backend

0 commit comments

Comments
 (0)