module Recordings class NotifyReady def initialize(recording) @recording = recording end def call return @recording if @recording.ready_notified_at.present? return @recording unless @recording.ready? recipients.each do |user| deliver_replay_ready(user) end @recording.update!(ready_notified_at: Time.current) @recording end private def deliver_replay_ready(user) Recordings::ReplayMailer.replay_ready(recording: @recording, recipient: user).deliver_now rescue EOFError => e # Aruba SMTP (465/SSL) chiude la socket prima del QUIT: la mail è già partita. Rails.logger.warn("[Recordings::NotifyReady] SMTP EOF on close for #{user.email}: #{e.message}") end def recipients club = @recording.team.club owner = club.owner users = club.users.distinct.to_a users << owner if owner && users.none? { |u| u.id == owner.id } users.uniq.select { |u| u.email.present? } end end end