From 60f55e622325f24e14e5d4b5dcfa1444f4c990ab Mon Sep 17 00:00:00 2001 From: Josef Citrine Date: Tue, 14 Jun 2016 00:40:14 +0100 Subject: [PATCH] Ignore requests with no subscription data --- .../Api/Web/NotificationsController.php | 29 ++++++++++--------- .../Notifications/Drivers/NativeDriver.php | 3 +- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/app/Http/Controllers/Api/Web/NotificationsController.php b/app/Http/Controllers/Api/Web/NotificationsController.php index 5843b3b3..10a25a37 100644 --- a/app/Http/Controllers/Api/Web/NotificationsController.php +++ b/app/Http/Controllers/Api/Web/NotificationsController.php @@ -73,22 +73,25 @@ class NotificationsController extends ApiControllerBase public function postSubscribe() { $input = json_decode(Input::json('subscription')); + if ($input != 'null') { + $existing = Subscription::where('endpoint', '=', $input->endpoint) + ->where('user_id', '=', Auth::user()->id) + ->first(); - $existing = Subscription::where('endpoint', '=', $input->endpoint) - ->where('user_id', '=', Auth::user()->id) - ->first(); + if ($existing === null) { + $subscription = Subscription::create([ + 'user_id' => Auth::user()->id, + 'endpoint' => $input->endpoint, + 'p256dh' => $input->keys->p256dh, + 'auth' => $input->keys->auth + ]); - if ($existing === null) { - $subscription = Subscription::create([ - 'user_id' => Auth::user()->id, - 'endpoint' => $input->endpoint, - 'p256dh' => $input->keys->p256dh, - 'auth' => $input->keys->auth - ]); - - return ['id' => $subscription->id]; + return ['id' => $subscription->id]; + } else { + return ['id' => $existing->id]; + } } else { - return ['id' => $existing->id]; + return ['error' => 'No data']; } } diff --git a/app/Library/Notifications/Drivers/NativeDriver.php b/app/Library/Notifications/Drivers/NativeDriver.php index eac30fdd..c340b5e9 100644 --- a/app/Library/Notifications/Drivers/NativeDriver.php +++ b/app/Library/Notifications/Drivers/NativeDriver.php @@ -37,7 +37,8 @@ class NativeDriver extends AbstractDriver { * @param Activity $activity * @param User[] $recipients collection of {@link User} objects */ - private function pushNotifications(Activity $activity, $recipients) { + private function pushNotifications(Activity $activity, $recipients) + { if (Config::get('ponyfm.gcm_key') != 'default') { $apiKeys = array( 'GCM' => Config::get('ponyfm.gcm_key'),