From 559ceda34674927db315c25e691cd4fe32b6c6dc Mon Sep 17 00:00:00 2001 From: Djery-Tom Date: Fri, 21 Aug 2020 14:58:19 +0100 Subject: [PATCH] + Save notifications --- .../Controllers/NotificationController.php | 47 +++++++++++++++++++ app/Http/Controllers/OneSignalController.php | 9 +++- app/Models/Notification.php | 39 +++++++++++++++ routes/web.php | 4 ++ 4 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 app/Http/Controllers/NotificationController.php create mode 100644 app/Models/Notification.php diff --git a/app/Http/Controllers/NotificationController.php b/app/Http/Controllers/NotificationController.php new file mode 100644 index 0000000..9b25aba --- /dev/null +++ b/app/Http/Controllers/NotificationController.php @@ -0,0 +1,47 @@ +validate($request, [ + 'user_code' => 'required_without:agent_code', + 'agent_code' => 'required_without:user_code' + ]); + $notifications = []; + if (isset($request->user_code)) + $notifications = Notification::where('user_code', $request->user_code)->get(); + elseif (isset($request->agent_code)) + $notifications = Notification::where('agent_code', $request->agent_code)->get(); + + foreach ($notifications as $notif) { + $notif->data = json_decode($notif->data); + } + + return $this->successResponse($notifications); + } + + +} diff --git a/app/Http/Controllers/OneSignalController.php b/app/Http/Controllers/OneSignalController.php index 7658c86..2a69f29 100644 --- a/app/Http/Controllers/OneSignalController.php +++ b/app/Http/Controllers/OneSignalController.php @@ -2,11 +2,13 @@ namespace App\Http\Controllers; +use App\Models\Notification; use App\Models\OnesignalAgent; use App\Models\OnesignalUser; use App\Traits\ApiResponser; use Illuminate\Http\Request; use Berkayk\OneSignal\OneSignalFacade; +use Mockery\Matcher\Not; class OneSignalController extends Controller { @@ -58,8 +60,13 @@ class OneSignalController extends Controller 'data'=>'required' ]); -// return response($request->all(),200); $userIds = OnesignalUser::where('user_code',$request->user_code)->get(); + $notif = new Notification(); + $notif->user_code = $request->user_code; + $notif->message = $request->message; + $notif->data = json_encode($request->data); + $notif->read = false; + $notif->save(); if($userIds){ foreach ($userIds as $userId){ OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data); diff --git a/app/Models/Notification.php b/app/Models/Notification.php new file mode 100644 index 0000000..e015f2a --- /dev/null +++ b/app/Models/Notification.php @@ -0,0 +1,39 @@ + 'int' + ]; + + protected $fillable = [ + 'user_code', + 'agent_code', + 'message', + 'data', + 'read' + ]; +} diff --git a/routes/web.php b/routes/web.php index bc0a2e3..887576f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,3 +23,7 @@ $router->group(['prefix'=>'/onesignal'], function () use ($router) { $router->post('saveUser', 'OneSignalController@addUserPlayerID'); $router->post('saveAgent', 'OneSignalController@addAgentPlayerID'); }); + +$router->group(['prefix'=>'/notifications'], function () use ($router) { + $router->post('', 'NotificationController@getNotifcations'); +});