Blame view

app/Jobs/SendVacancyToTelegramJob.php 1.05 KB
ab181e741   Fedor   task-132985 autol...
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
  <?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('id', $this->employerIds)
              ->get();
  
          foreach ($vacancies as $vacancy) {
              $this->telegramSenderHelper->sendVacancy($vacancy);
          }
      }
  }