File: /home/marketing.cfbon.ru/public_html/app/Jobs/SendPushToNotificationJob.php
<?php
namespace App\Jobs;
use App\Services\FirebaseNotificationService;
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Foundation\Queue\Queueable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log;
class SendPushToNotificationJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, Batchable;
public array $taskData;
protected array $tokens;
protected string $title;
protected ?string $body;
protected ?string $img;
public function __construct($taskData)
{
$this->taskData = $taskData;
$this->tokens = $taskData['tokens'];
$this->body = $taskData['body'] ?? '';
$this->title = $taskData['title'];
$this->img = $taskData['img'] ?? '';
}
public function handle(FirebaseNotificationService $firebaseService) : void
{
if ($this->batch()->cancelled()) {
return;
}
try {
$response = $firebaseService->sendNotification($this->tokens, $this->title, $this->body, $this->img);
} catch (\Throwable $e) {
Log::error($e->getMessage());
$this->fail($e);
}
}
}