# frozen_string_literal: true # Envía los mensajes de contacto class ContactJob < ApplicationJob def perform(**args) @params = args # Enviar de a 10 usuaries para minimizar el riesgo que nos # consideren spammers. # # TODO: #i18n. Agrupar usuaries por su idioma usuaries.each_slice(10) do |u| ContactMailer.with(**args.merge(usuaries: u, title: site.title)) .notify_usuaries.deliver_now end end private def site @site ||= Site.find @params[:site_id] end # Trae solo les usuaries definitives para eliminar un vector de ataque # donde alguien crea un sitio, agrega a muches usuaries y les envía # correos. # # TODO: Mover a Site#usuaries def usuaries site.roles.where(rol: 'usuarie', temporal: false).includes(:usuarie) .pluck(:email) end end