Umair Khan
329b377e6a
push_notification: Add uses_notification_bouncer().
...
This function abstracts the logic to ascertain if we are using
notification bouncer service or not. Makes our code more
maintainable.
2017-05-11 12:04:16 -07:00
Umair Khan
112a67097b
push_notifications: Don't get alert message.
...
Now we set the alert message in the payload functions for both GCM and APNs so
no need to get it here.
2017-05-11 12:04:16 -07:00
Umair Khan
3c32bc6d8a
push_notification: Create get_gcm_payload.
2017-05-11 12:04:16 -07:00
Umair Khan
d90774b9db
push_notifications: Create get_apns_payload.
...
This function creates the payload that we will send to APNs.
2017-05-11 12:04:16 -07:00
Umair Khan
5ff7fdf83a
push_notification: Create get_alert_from_message.
...
This function returns the alert shown by iOS or Android device.
2017-05-11 12:04:16 -07:00
Aditya Bansal
69cf11d786
pep8: Add compliance with rule E261 to push_notifications.py.
2017-05-07 23:21:50 -07:00
Tim Abbott
c0d7e83333
logging: Change missing push notification keys from error to warning.
...
This is a configuration problem, but it just means a feature is not
enabled, not that attention is required, so it should be a warning,
not an error.
2017-04-25 13:52:36 -07:00
Tim Abbott
cddee49e75
Add support infrastructure for push notification bouncer service.
...
This is an incomplete cleaned-up continuation of Lisa Neigut's push
notification bouncer work. It supports registration and
deregistration of individual push tokens with a central push
notification bouncer server.
It still is missing a few things before we can complete this effort:
* A registration form for server admins to configure their server for
this service, with tests.
* Code (and tests) for actually bouncing the notifications.
2017-04-18 23:03:06 -07:00
hackerkid
b2504084ab
Replace timezone.now with timezone_now.
2017-04-16 12:28:56 -07:00
Tim Abbott
89eb7636ba
remove_push_device_token: Remove unused request argument.
2017-03-05 22:01:28 -08:00
Tim Abbott
657dfcbddc
push: Move remove_push_device_token to library.
2017-03-05 19:15:17 -08:00
Tim Abbott
c0ad9c02fd
push: Extract validate_token helper function.
2017-03-05 19:15:17 -08:00
Tim Abbott
271bd5a282
push: Move add_push_device_token to library.
2017-03-05 19:15:16 -08:00
Tim Abbott
410c0626a6
push: Pass apple alert via the zulip dict.
...
This completes the process of simplifying the interface of the
send_*_push_notification functions, so that they can effectively
support a push notification forwarding workflow.
2017-03-05 18:37:00 -08:00
Tim Abbott
fc192d6b3b
push: Don't pass a UserProfile into send_apple_push_notification..
2017-03-05 18:37:00 -08:00
Tim Abbott
393c4d2eaa
push: Don't pass a UserProfile into _do_push_to_apns_service.
2017-03-05 18:37:00 -08:00
Tim Abbott
53c9e3b4ca
push: Don't pass a full UserProfile into APNsMessage.
2017-03-05 18:37:00 -08:00
Tim Abbott
c8bfd568bc
push: Pass devices list into send_apple_push_notification.
2017-03-05 18:36:58 -08:00
Tim Abbott
0ddaf5c610
push: Pass reg_ids list into send_android_push_notification.
...
This refactoring is preparation for being able to forward push
notifications to users on behalf of another Zulip server.
The goal is to remove access to the current server's database from the
send_*_push_notification code paths.
2017-03-05 18:36:07 -08:00
Tim Abbott
b1b2d8d2c7
push: Move handle_push_notifications to push_notifications.py.
2017-03-05 18:32:09 -08:00
Raghav Jajodia
a3a03bd6a5
mypy: Added Dict, List and Set imports.
...
Fixed mypy errors associated with the upgrade.
2017-03-04 14:33:44 -08:00
Tim Abbott
4e171ce787
lint: Clean up E126 PEP-8 rule.
2017-01-23 22:06:13 -08:00
Tim Abbott
de99f48ce7
lint: Clean up E401 PEP-8 rule.
2017-01-23 21:36:39 -08:00
Robert Hönig
0917493588
mypy: Convert zerver/lib to use typing.Text.
2016-12-25 10:33:45 -08:00
Umair Khan
c24fbd28b2
Shift to python-gcm for Android push notifications.
...
Fixes #2650
2016-12-15 12:17:07 -08:00
nikolay
abc2ff4a06
pep8: Fix many rule E128 violations.
...
[Tweaked by tabbott to adjust some approaches used in wrapping]
2016-12-03 13:33:31 -08:00
Umair Khan
acd76eb604
Annotate push_notifications.py.
2016-08-08 15:17:02 -07:00
Umair Khan
0dd7d0dda1
push_notifications: Change name to 'identifier'.
2016-08-08 15:15:29 -07:00
Umair Khan
d33fc0046f
Add APNS feedback server tests.
2016-08-05 10:36:57 -07:00
Umair Khan
40054ce26c
Add APNS response listener test case.
2016-08-05 10:36:57 -07:00
Umair Khan
882bb5558b
Push to APNS in a loop.
2016-08-05 10:36:57 -07:00
Umair Khan
4e8ca0a326
Make sure apns response code is an integer.
2016-08-05 10:36:57 -07:00
Umair Khan
5c41eae7ec
Don't send connection to apns response listener.
2016-08-05 10:36:57 -07:00
Umair Khan
ffaf7cb2ba
Create get_connection function for APNS.
2016-08-05 10:36:57 -07:00
Umair Khan
1d2bdfdfb1
Save user id instead of user profile.
2016-08-05 10:36:57 -07:00
Umair Khan
0cac1aa135
For APNS frame identifier generate random int.
2016-08-05 10:36:57 -07:00
Umair Khan
0b5dc56b8d
Redis key expiry should be an integer.
2016-08-05 10:36:57 -07:00
Umair Khan
cbd53fbac8
Don't import OrderedDict.
2016-08-05 10:36:57 -07:00
Umair Khan
0b88deb640
APNS_SANDBOX should be a bool.
...
Fixes : #1480
2016-08-05 10:36:57 -07:00
Umair Khan
0aae0eab49
Switch to PyAPNS for sending push notifications.
...
Switch to [PyAPNS](https://github.com/djacobs/PyAPNs ).
Fixes #538 .
2016-07-13 10:55:07 -07:00
Taranjeet
a8a4caf2c0
zerver: Fix lines with length greater than 120.
2016-07-08 11:41:43 -07:00
Eklavya Sharma
98553e8caa
zerver/lib/push_notifications.py: Fix strings.
...
Use appropriate string encode/decode operations and fix annotations.
2016-06-15 15:25:28 -07:00
Tim Abbott
1552b9308b
Fix apnsclient import to match version 0.1.8 used in production.
...
Apparently, apnsclient moved Connection to a different module between
0.1.8 and 0.2.1.
2016-06-03 19:28:36 -07:00
Tim Abbott
f97b025a33
push_notifications: Fix incorrect Connection import.
2016-06-03 18:11:53 -07:00
medullaskyline
303bd21068
Annotate zserver.lib.push_notifications.
2016-06-03 17:45:54 -07:00
Tim Abbott
191201bd10
Fix unnecessary whitespace between % and (.
2016-05-04 14:22:52 -07:00
Leo Franchi
0ae8e28635
Exit without exception if this APNS attempt has no connection
...
(imported from commit bbdd9f3e11946739459f34b2580e4a7371b158a0)
2015-02-11 07:20:51 +00:00
Leo Franchi
d865732e0d
Maintain two APNS connections and send correct notifications to each
...
Now we have 2 different Zulip apps out there, and they are signed with
two certs: Zulip and Dropbox. The Dropbox-signed apps are going to need
to be sent APNS notifications from the appropriate APNS connection
(imported from commit 6db50c5811847db4f08e5c997c7bbb4b46cfc462)
2015-02-11 06:57:25 +00:00
Luke Faraone
1c67d05e5f
Handle duplicate GCM registrations by dropping the old ones.
...
While we're at it, lets comment up the function so I know what this is
doing next time :)
(imported from commit e745be75fcd6dbce9997e1d73464619fc8b73996)
2014-01-23 19:21:28 -05:00
Leo Franchi
c0fdbf81cf
Use the feedback connection for getting APNS feedback
...
(imported from commit d371188e0437606b3ff435ee9c005cee2849f6ae)
2014-01-22 13:50:15 -05:00