+ Save notifications

This commit is contained in:
Djery-Tom 2020-08-21 14:58:19 +01:00
parent 1601199bd6
commit 559ceda346
4 changed files with 98 additions and 1 deletions

View File

@ -0,0 +1,47 @@
<?php
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 NotificationController extends Controller
{
use ApiResponser;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
//
}
public function getNotifcations(Request $request)
{
$this->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);
}
}

View File

@ -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);

View File

@ -0,0 +1,39 @@
<?php
/**
* Created by Reliese Model.
*/
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
/**
* Class Notification
*
* @property int $id
* @property string $user_code
* @property string $agent_code
* @property string $message
* @property string $data
* @property int $read
*
* @package App\Models
*/
class Notification extends Model
{
protected $table = 'notifications';
public $timestamps = false;
protected $casts = [
'read' => 'int'
];
protected $fillable = [
'user_code',
'agent_code',
'message',
'data',
'read'
];
}

View File

@ -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');
});