<?php
|
|
|
|
namespace App\Events;
|
|
|
|
use Illuminate\Broadcasting\Channel;
|
|
use Illuminate\Queue\SerializesModels;
|
|
use Illuminate\Broadcasting\PrivateChannel;
|
|
use Illuminate\Broadcasting\PresenceChannel;
|
|
use Illuminate\Foundation\Events\Dispatchable;
|
|
use Illuminate\Broadcasting\InteractsWithSockets;
|
|
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
|
|
|
|
use App\Tweet;
|
|
|
|
class NewTweetEvent implements ShouldBroadcast
|
|
{
|
|
use Dispatchable, InteractsWithSockets, SerializesModels;
|
|
|
|
public $tweet_id;
|
|
public $tweet_date;
|
|
public $team_name;
|
|
public $team_color;
|
|
public $player_username;
|
|
public $player_photo;
|
|
public $text;
|
|
public $photos;
|
|
public $mission;
|
|
public $mission_id;
|
|
public $twitter_id;
|
|
|
|
/**
|
|
* Create a new event instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function __construct(Tweet $tweet)
|
|
{
|
|
$this->tweet_id = $tweet->id;
|
|
$this->tweet_date = strtotime($tweet->tweet_date);
|
|
$this->team_name = ($tweet->team ? $tweet->team->name : null);
|
|
$this->team_color = ($tweet->team ? $tweet->team->color : null);
|
|
$this->player_username = ($tweet->player ? $tweet->player->twitter : null);
|
|
$this->player_photo = ($tweet->player ? $tweet->player->photo : null);
|
|
$this->text = $tweet->text;
|
|
$this->photos = json_decode($tweet->photo);
|
|
$this->mission = ($tweet->mission ? $tweet->mission->hashtag : null);
|
|
$this->mission_id = $tweet->mission_id;
|
|
$this->twitter_id = $tweet->tweet_id;
|
|
}
|
|
|
|
/**
|
|
* Get the channels the event should broadcast on.
|
|
*
|
|
* @return Channel|array
|
|
*/
|
|
public function broadcastOn()
|
|
{
|
|
return ['tweet-queue'];
|
|
}
|
|
}
|