diff --git a/.env.example b/.env.example index 3f6f0c7fdce9..18053683d7ba 100644 --- a/.env.example +++ b/.env.example @@ -31,6 +31,9 @@ PHANTOMJS_CLOUD_KEY='a-demo-key-with-low-quota-per-ip-address' LOG=single REQUIRE_HTTPS=false API_SECRET=password +IOS_DEVICE= +ANDROID_DEVICE= +FCM_API_TOKEN= #TRUSTED_PROXIES= diff --git a/app/Ninja/Notifications/PushFactory.php b/app/Ninja/Notifications/PushFactory.php index e2f34c46be2d..6e69ac80bb7a 100644 --- a/app/Ninja/Notifications/PushFactory.php +++ b/app/Ninja/Notifications/PushFactory.php @@ -3,6 +3,7 @@ namespace App\Ninja\Notifications; use Davibennun\LaravelPushNotification\Facades\PushNotification; +use Illuminate\Support\Facades\Log; /** * Class PushFactory @@ -15,7 +16,6 @@ class PushFactory */ public function __construct() { - $this->certificate = IOS_PUSH_CERTIFICATE; } /** @@ -28,14 +28,15 @@ class PushFactory * @param $token * @param $message * @param $messageArray + * @param string $device - Type of device the message is being pushed to. * * @return void */ - public function customMessage($token, $message, $messageArray) + public function customMessage($token, $message, $messageArray, $device) { $customMessage = PushNotification::Message($message, $messageArray); - $this->message($token, $customMessage); + $this->message($token, $customMessage, $device); } /** @@ -51,11 +52,17 @@ class PushFactory * @return void */ - public function message($token, $message) + public function message($token, $message, $device) { - PushNotification::app($this->certificate) - ->to($token) - ->send($message); + try { + PushNotification::app($device) + ->to($token) + ->send($message); + } + catch(\Exception $e) { + Log::error($e->getMessage()); + } + } /** @@ -69,13 +76,13 @@ class PushFactory * * @param string $token - A valid token (can be any valid token) * @param string $message - Nil value for message - * + * @param string $device - Type of device the message is being pushed to. * @return array */ - public function getFeedback($token, $message = '') + public function getFeedback($token, $message = '', $device) { - $feedback = PushNotification::app($this->certificate) + $feedback = PushNotification::app($device) ->to($token) ->send($message); diff --git a/app/Services/PushService.php b/app/Services/PushService.php index 017426814bd8..759e0271cbff 100644 --- a/app/Services/PushService.php +++ b/app/Services/PushService.php @@ -30,10 +30,6 @@ class PushService */ public function sendNotification(Invoice $invoice, $type) { - if (! IOS_PUSH_CERTIFICATE) { - return; - } - //check user has registered for push notifications if(!$this->checkDeviceExists($invoice->account)) return; @@ -43,8 +39,10 @@ class PushService foreach($devices as $device) { - if(($device["notify_{$type}"] == TRUE) && ($device['device'] == 'ios')) - $this->pushMessage($invoice, $device['token'], $type); + if(($device["notify_{$type}"] == TRUE) && ($device['device'] == 'ios') && IOS_DEVICE) + $this->pushMessage($invoice, $device['token'], $type, IOS_DEVICE); + elseif(($device["notify_{$type}"] == TRUE) && ($device['device'] == 'fcm') && ANDROID_DEVICE) + $this->pushMessage($invoice, $device['token'], $type, ANDROID_DEVICE); } } @@ -57,9 +55,9 @@ class PushService * @param $token * @param $type */ - private function pushMessage(Invoice $invoice, $token, $type) + private function pushMessage(Invoice $invoice, $token, $type, $device) { - $this->pushFactory->message($token, $this->messageType($invoice, $type)); + $this->pushFactory->message($token, $this->messageType($invoice, $type), $device); } /** diff --git a/composer.json b/composer.json index 01aa6e8bb2a2..05d8468404ed 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "php": ">=5.5.9", "ext-gmp": "*", "ext-gd": "*", - "turbo124/laravel-push-notification": "dev-laravel5", + "turbo124/laravel-push-notification": "2.*", "omnipay/mollie": "dev-master#22956c1a62a9662afa5f5d119723b413770ac525", "omnipay/2checkout": "dev-master#e9c079c2dde0d7ba461903b3b7bd5caf6dee1248", "omnipay/gocardless": "dev-master", diff --git a/config/push-notification.php b/config/push-notification.php index bf7ba5c40ab9..31e51edb88a9 100644 --- a/config/push-notification.php +++ b/config/push-notification.php @@ -16,8 +16,8 @@ return [ ], 'ninjaAndroid' => [ 'environment' =>'production', - 'apiKey' =>'yourAPIKey', - 'service' =>'gcm' + 'apiKey' =>env('FCM_API_TOKEN'), + 'service' =>'fcm' ] ];