Skip to content

Commit

Permalink
Format notifiable properly.
Browse files Browse the repository at this point in the history
  • Loading branch information
taylorotwell committed Sep 29, 2016
1 parent 4a4e2d5 commit 3a5e510
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 10 deletions.
30 changes: 21 additions & 9 deletions src/Illuminate/Notifications/ChannelManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,11 @@
use Nexmo\Client as NexmoClient;
use Illuminate\Support\Collection;
use GuzzleHttp\Client as HttpClient;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Contracts\Bus\Dispatcher as Bus;
use Nexmo\Client\Credentials\Basic as NexmoCredentials;
use Illuminate\Database\Eloquent\Collection as ModelCollection;
use Illuminate\Contracts\Notifications\Factory as FactoryContract;
use Illuminate\Contracts\Notifications\Dispatcher as DispatcherContract;

Expand All @@ -32,9 +34,7 @@ class ChannelManager extends Manager implements DispatcherContract, FactoryContr
*/
public function send($notifiables, $notification)
{
if (! $notifiables instanceof Collection && ! is_array($notifiables)) {
$notifiables = [$notifiables];
}
$notifiables = $this->formatNotifiables($notifiables);

if ($notification instanceof ShouldQueue) {
return $this->queueNotification($notifiables, $notification);
Expand All @@ -52,9 +52,7 @@ public function send($notifiables, $notification)
*/
public function sendNow($notifiables, $notification, array $channels = null)
{
if (! $notifiables instanceof Collection && ! is_array($notifiables)) {
$notifiables = [$notifiables];
}
$notifiables = $this->formatNotifiables($notifiables);

$original = clone $notification;

Expand Down Expand Up @@ -109,9 +107,7 @@ protected function shouldSendNotification($notifiable, $notification, $channel)
*/
protected function queueNotification($notifiables, $notification)
{
if (! $notifiables instanceof Collection && ! is_array($notifiables)) {
$notifiables = [$notifiables];
}
$notifiables = $this->formatNotifiables($notifiables);

$bus = $this->app->make(Bus::class);

Expand All @@ -127,6 +123,22 @@ protected function queueNotification($notifiables, $notification)
}
}

/**
* Format the notifiables into a Collection / array if necessary.
*
* @param mixed $notifiables
* @return ModelCollection|array
*/
protected function formatNotifiables($notifiables)
{
if (! $notifiables instanceof Collection && ! is_array($notifiables)) {
return $notifiables instanceof Model
? new ModelCollection([$notifiables]) : [$notifiables];
}

return $notifiables;
}

/**
* Get a channel instance.
*
Expand Down
2 changes: 1 addition & 1 deletion src/Illuminate/Notifications/RoutesNotifications.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ trait RoutesNotifications
*/
public function notify($instance)
{
app(Dispatcher::class)->send([$this], $instance);
app(Dispatcher::class)->send($this, $instance);
}

/**
Expand Down

0 comments on commit 3a5e510

Please sign in to comment.