class MailCannon::Barrel

This worker handles Envelopes dispatch

Public Instance Methods

perform(envelope_id) click to toggle source
# File lib/mailcannon/workers/barrel.rb, line 5
def perform(envelope_id)
  envelope_id = envelope_id['$oid'] if envelope_id['$oid']
  shoot!(envelope_id)
end

Private Instance Methods

shoot!(envelope_id) click to toggle source
# File lib/mailcannon/workers/barrel.rb, line 11
def shoot!(envelope_id)
  logger.info "sending MailCannon::Envelope.find('#{envelope_id}')"
  begin
    envelope = MailCannon::Envelope.find(envelope_id.to_s)
    if envelope.valid?
      response = envelope.send!
      unless response==true
        raise response
      end
    end
  rescue Mongoid::Errors::DocumentNotFound
    logger.error "unable to find the document MailCannon::Envelope.find('#{envelope_id}')"
    raise Mongoid::Errors::DocumentNotFound
  rescue Exception => e
    logger.error "unable to send MailCannon::Envelope.find('#{envelope_id}') #{e} #{e.backtrace}"
    raise e
  end
end