5
0
Fork 0
mirror of https://0xacab.org/sutty/sutty synced 2024-11-17 06:26:22 +00:00
panel/app/jobs/contact_job.rb

34 lines
842 B
Ruby

# 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