Sha256: feaf2b89a574e415ee6179b2386929b25052b04cf4940d56927c649ae2aa90e8

Contents?: true

Size: 1.08 KB

Versions: 32

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module PgEngine
  class EmailObserver
    def self.delivered_email(message) # rubocop:disable Metrics/AbcSize
      message_id = message.message_id
      mailer = message.delivery_handler.to_s
      status = get_status(message)
      if message['email_object'].present?
        email_object = message['email_object'].unparsed_value
        email_object.update_columns(message_id:, mailer:, status:)
      else
        to = [message.to].flatten.join(', ')
        from = [message.from].flatten.join(', ')
        email_object = Email.create!(message_id:, subject: message.subject, to:, mailer:, status:, from_address: from,
                                     from_name: '')
      end
      email_object.encoded_eml.attach({ io: StringIO.new(message.encoded), filename: "email-#{email_object.id}.eml" })
    rescue StandardError => e
      pg_err e
    end

    def self.get_status(_message)
      # TODO: falta implementar el interceptor y habría que dar algún detalle de por uqé se bloqueó
      # message.perform_deliveries ? :sent : :failed
      :sent
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
pg_rails-7.1.1.pre.4 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.1.1.pre.3 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.1.1.pre.2 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.1.1.pre.1 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.1.0 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.112 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.111 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.110 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.109 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.108 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.107 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.106 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.105 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.104 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.103 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.102 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.101 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.100 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.99 pg_engine/lib/pg_engine/email_observer.rb
pg_rails-7.0.8.pre.alpha.98 pg_engine/lib/pg_engine/email_observer.rb