# frozen_string_literal: true # Envía las notificaciones por Telegram class TelegramJob < ApplicationJob queue_as :default # @param :piratas [Symbol,Array] :all para traer todas, array de IDs para filtrar # @param :payload [String] La notificación a enviar en JSON def perform(piratas:, payload:) # Encontrar todas las piratas con Telegram piratas = find_piratas(piratas) payload = JSON.parse payload piratas.find_each do |pirata| Telegram.bots[:default].send_message chat_id: pirata.telegram_user, parse_mode: 'HTML', text: "#{payload['subject']}\n\n#{payload['message']}" end end private def find_piratas(ids) piratas = Pirata.where.not(telegram_user: nil) unless ids == 'all' piratas.where(id: ids) end piratas end end