pipicar/app/Http/Notifications/TelegramNotification.php

80 lines
1.8 KiB
PHP

<?php
namespace App\Http\Notifications;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;
use NotificationChannels\Telegram\TelegramMessage;
class TelegramNotification extends Notification
{
use Queueable;
/**
* Create a new notification instance.
*/
public function __construct()
{
//
}
/**
* Get the notification's delivery channels.
*
* @return array<int, string>
*/
public function via($notifiable)
{
return ['telegram'];
}
public function toTelegram($notifiable)
{
$message = TelegramMessage::create()
->to(config('services.telegram-bot-api.id'))
->content($notifiable['message']);
$excludedFields = [
'message',
'id',
'created_at',
'updated_at',
'token'
];
foreach ($notifiable as $field => $value) {
if (in_array($field, $excludedFields) || empty($value)) {
continue;
}
$message->line($value);
}
return $message;
}
/**
* Get the mail representation of the notification.
*/
public function toMail(object $notifiable): MailMessage
{
return (new MailMessage)
->line('The introduction to the notification.')
->action('Notification Action', url('/'))
->line('Thank you for using our application!');
}
/**
* Get the array representation of the notification.
*
* @return array<string, mixed>
*/
public function toArray(object $notifiable): array
{
return [
//
];
}
}