Blame view
app/Components/Integrations/Telegram/VacancyChannel.php
1.64 KB
088323a40 task-132687 teleg... |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php namespace App\Components\Integrations\Telegram; use App\Models\Ad_employer; use Str; use Telegram\Bot\Api; use Telegram\Bot\Exceptions\TelegramSDKException; use Telegram\Bot\Laravel\Facades\Telegram; use Telegram\Bot\Objects\Update; class VacancyChannel { |
465aace57 task-132687 minor... |
14 |
const REKAMORE_CHANNEL_ID = 'REKAMORE_CHANNEL_ID'; |
088323a40 task-132687 teleg... |
15 16 17 18 19 20 21 22 23 24 |
private Api $botApi; public function __construct() { $this->botApi = Telegram::bot('channel_bot'); } /** * @throws TelegramSDKException */ |
465aace57 task-132687 minor... |
25 |
private function getChatId() |
088323a40 task-132687 teleg... |
26 27 28 29 30 |
{ $updates = $this->botApi->getUpdates(); /** @var Update $update*/ $chatId = null; foreach ($updates as $update) { |
465aace57 task-132687 minor... |
31 32 33 34 |
if ($update->message?->chat->title === config('services.telegram.chat_title')) { $chatId = $update->message->chat->id; \Cache::set(self::REKAMORE_CHANNEL_ID, $chatId, null); break; |
088323a40 task-132687 teleg... |
35 36 |
} } |
465aace57 task-132687 minor... |
37 |
|
088323a40 task-132687 teleg... |
38 |
if ($chatId === null) { |
465aace57 task-132687 minor... |
39 40 41 42 |
$chatId = \Cache::get(self::REKAMORE_CHANNEL_ID); if ($chatId === null) { throw new TelegramSDKException('Cant locate group chat id'); } |
088323a40 task-132687 teleg... |
43 |
} |
465aace57 task-132687 minor... |
44 45 46 47 48 49 50 51 52 |
return $chatId; } /** * @throws TelegramSDKException */ public function sendVacancy(Ad_employer $vacancy): void { $chatId = $this->getChatId(); |
088323a40 task-132687 teleg... |
53 54 55 56 57 58 59 60 61 62 63 |
$text = str_ireplace('<p>', '', $vacancy->text); $text = str_ireplace('</p>', '', $text); $this->botApi->sendMessage([ 'chat_id' => $chatId, 'text' => $text, 'disable_web_page_preview' => true, 'parse_mode' => 'HTML' ]); } } |