MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/mpl.imenso.co/app/Listeners/SendEventProposedNotification.php
<?php

namespace App\Listeners;

use App\Events\EventProposed;
use App\Models\Notification;
use Illuminate\Support\Facades\Broadcast;
use Illuminate\Support\Facades\View;

class SendEventProposedNotification
{
    /**
     * Create the event listener.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     *
     * @param  EventProposed  $event
     * @return void
     */
    public function handle(EventProposed $event)
    {
        $html = view('notifications/venue/event-proposed')->with([
            'event'   => $event->event,
            'creator' => $event->creator,
        ])->render();

        $notification = $event->event->venue->addNotification(
            103,
            $html,
            [
                'event_id'   => $event->event->id,
                'creator_id' => $event->creator->id,
            ]
        );

        if ($notification) {
            $html = '<a href="javascript: void(0)" onclick="clearNotification('.$notification->id.')" class="clear-btn"><i class="fa fa-close"></i></a>';

            $html .= Notification::parseNotification(
                view('notifications/venue/event-proposed')->with([
                    'event'   => $event->event,
                    'creator' => $event->creator,
                ])->render()
            );

            $html .= '<div class="time-ago">'.$notification->created_at->diffForHumans().'</div>';

            if ($notification->getActions()) {
                $html .= '<div class="action-row">'.$notification->getActions().'</div>';
            }

            $data = [
                'action' => 'add-notification',
                'html'   => $html,
                'id'     => $notification->id,
            ];

            Broadcast::broadcast(
                [
                    'private-user_'.$event->event->venue->id,
                ],
                'notification',
                $data
            );
        }
    }
}