31 lines
1 KiB
Ruby
31 lines
1 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# Envía los mensajes de mantenimiento
|
||
|
#
|
||
|
# TODO: Interfaz web desde el panel de gestión. Mientras tanto:
|
||
|
#
|
||
|
# docker exec -it sutty /bin/sh
|
||
|
# su app
|
||
|
# cd
|
||
|
# bundle exec rails c
|
||
|
# m = Maintenance.create message_en: 'reason', message_es: 'razón',
|
||
|
# estimated_from: Time.now, estimated_to: Time.now + 1.hour
|
||
|
# MaintenanceJob.perform_async(maintenance_id: m.id)
|
||
|
#
|
||
|
# Lo mismo para salir de mantenimiento, agregando el atributo
|
||
|
# are_we_back: true al crear el Maintenance.
|
||
|
class MaintenanceJob < ApplicationJob
|
||
|
def perform(maintenance_id:)
|
||
|
maintenance = Maintenance.find(maintenance_id)
|
||
|
# Decidir cuál vamos a enviar según el estado de Maintenance
|
||
|
mailer = maintenance.are_we_back ? :were_back : :notice
|
||
|
|
||
|
# XXX: Parece que [0] es más rápido que []#first
|
||
|
Usuarie.all.pluck(:email, :lang).each do |u|
|
||
|
MaintenanceMailer.with(maintenance: maintenance,
|
||
|
email: u[0],
|
||
|
lang: u[1]).send(mailer).deliver_now
|
||
|
end
|
||
|
end
|
||
|
end
|