+ Save notifications
This commit is contained in:
parent
1601199bd6
commit
559ceda346
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -2,11 +2,13 @@
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\Models\Notification;
|
||||||
use App\Models\OnesignalAgent;
|
use App\Models\OnesignalAgent;
|
||||||
use App\Models\OnesignalUser;
|
use App\Models\OnesignalUser;
|
||||||
use App\Traits\ApiResponser;
|
use App\Traits\ApiResponser;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Berkayk\OneSignal\OneSignalFacade;
|
use Berkayk\OneSignal\OneSignalFacade;
|
||||||
|
use Mockery\Matcher\Not;
|
||||||
|
|
||||||
class OneSignalController extends Controller
|
class OneSignalController extends Controller
|
||||||
{
|
{
|
||||||
|
@ -58,8 +60,13 @@ class OneSignalController extends Controller
|
||||||
'data'=>'required'
|
'data'=>'required'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// return response($request->all(),200);
|
|
||||||
$userIds = OnesignalUser::where('user_code',$request->user_code)->get();
|
$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){
|
if($userIds){
|
||||||
foreach ($userIds as $userId){
|
foreach ($userIds as $userId){
|
||||||
OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data);
|
OneSignalFacade::async()->sendNotificationToUser($request->message, $userId->player_id, $url = null, $request->data);
|
||||||
|
|
|
@ -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'
|
||||||
|
];
|
||||||
|
}
|
|
@ -23,3 +23,7 @@ $router->group(['prefix'=>'/onesignal'], function () use ($router) {
|
||||||
$router->post('saveUser', 'OneSignalController@addUserPlayerID');
|
$router->post('saveUser', 'OneSignalController@addUserPlayerID');
|
||||||
$router->post('saveAgent', 'OneSignalController@addAgentPlayerID');
|
$router->post('saveAgent', 'OneSignalController@addAgentPlayerID');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$router->group(['prefix'=>'/notifications'], function () use ($router) {
|
||||||
|
$router->post('', 'NotificationController@getNotifcations');
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue