# frozen_string_literal: true # Envía los mensajes de contacto class ContactJob < ApplicationJob def perform(**args) @params = args # Sanitizar los valores args[:form].keys.each do |key| args[:form][key] = ActionController::Base.helpers.sanitize args[:form][key] end # 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_emails: u)) .notify_usuaries.deliver_now end end private # 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