+ 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;
|
||||
|
||||
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);
|
||||
|
|
|
@ -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('saveAgent', 'OneSignalController@addAgentPlayerID');
|
||||
});
|
||||
|
||||
$router->group(['prefix'=>'/notifications'], function () use ($router) {
|
||||
$router->post('', 'NotificationController@getNotifcations');
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue