����JFIF��x�x����'
| Server IP : 78.140.185.180 / Your IP : 216.73.216.169 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/././././www/common/Notifications/ |
Upload File : |
<?php
namespace Common\Notifications;
use Auth;
use Common\Core\BaseController;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
class NotificationSubscriptionsController extends BaseController
{
/**
* @var Filesystem
*/
private $fs;
/**
* @var Request
*/
private $request;
/**
* @param Filesystem $fs
* @param Request $request
*/
public function __construct(
Filesystem $fs,
Request $request
) {
$this->fs = $fs;
$this->request = $request;
}
/**
* @param int $userId
* @return Response
*/
public function index($userId)
{
$this->authorize('index', [NotificationSubscription::class, $userId]);
$response = $this->getConfig();
$subs = Auth::user()->notificationSubscriptions;
$response['user_selections'] = $subs;
return $this->success($response);
}
/**
* @param int $userId
* @return Response
*/
public function update($userId)
{
$this->authorize('update', [NotificationSubscription::class, $userId]);
$this->validate($this->request, [
'selections' => 'present|array',
'selections.*.notif_id' => 'required|string',
'selections.*.channels' => 'required|array',
]);
foreach ($this->request->get('selections') as $selection) {
$subscription = Auth::user()->notificationSubscriptions()->firstOrNew(['notif_id' => $selection['notif_id']]);
$newChannels = $subscription['channels'];
// can update state of all channels at once or only a single channel
foreach ($selection['channels'] as $newChannel => $isSubscribed) {
$newChannels[$newChannel] = $isSubscribed;
}
$subscription->fill(['channels' => $newChannels])->save();
}
return $this->success();
}
private function getConfig()
{
return $this->fs->getRequire(resource_path('defaults/notification-settings.php'));
}
}