SendVacancyToTelegramJob.php
1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
namespace App\Jobs;
use App\Components\Integrations\Telegram\VacancyChannel;
use App\Models\Ad_employer;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Telegram\Bot\Exceptions\TelegramSDKException;
class SendVacancyToTelegramJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
private array $employerIds;
private VacancyChannel $telegramSenderHelper;
public function __construct(array $employerIds)
{
$this->employerIds = $employerIds;
$this->telegramSenderHelper = new VacancyChannel();
}
/**
* @throws TelegramSDKException
*/
public function handle(): void
{
$vacancies = Ad_employer::query()
->whereIn('employer_id', $this->employerIds)
->where('autosend_tg', 1)
->where('active_is', 1)
->where('is_remove', 0)
->get();
foreach ($vacancies as $vacancy) {
$this->telegramSenderHelper->sendVacancy($vacancy);
}
}
}