aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorGeorge Claghorn <george@basecamp.com>2018-10-18 17:39:04 -0400
committerGeorge Claghorn <george@basecamp.com>2018-10-18 17:39:04 -0400
commitf33ccec86c02205cc82dd14dea24a5ad3f27f502 (patch)
tree8b61db32444ab456e1fc9913ccc80e454e2ef123 /app
parent4411095290f24ccb2e263c9534acfd19d081120f (diff)
parentcf8d76fdb42ab33c778b1787fb2ebe06481e2e3f (diff)
downloadrails-f33ccec86c02205cc82dd14dea24a5ad3f27f502.tar.gz
rails-f33ccec86c02205cc82dd14dea24a5ad3f27f502.tar.bz2
rails-f33ccec86c02205cc82dd14dea24a5ad3f27f502.zip
Merge branch 'master' into ingresses
Diffstat (limited to 'app')
-rw-r--r--app/jobs/action_mailbox/incineration_job.rb (renamed from app/jobs/action_mailbox/inbound_email/incineration_job.rb)2
-rw-r--r--app/models/action_mailbox/inbound_email.rb4
-rw-r--r--app/models/action_mailbox/inbound_email/incineratable.rb23
-rw-r--r--app/models/action_mailbox/inbound_email/incineratable/incineration.rb4
-rw-r--r--app/models/action_mailbox/inbound_email/routable.rb2
5 files changed, 13 insertions, 22 deletions
diff --git a/app/jobs/action_mailbox/inbound_email/incineration_job.rb b/app/jobs/action_mailbox/incineration_job.rb
index d9422a3fa8..e9f0c78e0f 100644
--- a/app/jobs/action_mailbox/inbound_email/incineration_job.rb
+++ b/app/jobs/action_mailbox/incineration_job.rb
@@ -1,4 +1,4 @@
-class ActionMailbox::InboundEmail::IncinerationJob < ApplicationJob
+class ActionMailbox::IncinerationJob < ApplicationJob
queue_as :action_mailbox_incineration
def self.schedule(inbound_email)
diff --git a/app/models/action_mailbox/inbound_email.rb b/app/models/action_mailbox/inbound_email.rb
index f2589d7429..7d1a36b705 100644
--- a/app/models/action_mailbox/inbound_email.rb
+++ b/app/models/action_mailbox/inbound_email.rb
@@ -19,4 +19,8 @@ class ActionMailbox::InboundEmail < ActiveRecord::Base
def source
@source ||= raw_email.download
end
+
+ def processed?
+ delivered? || failed? || bounced?
+ end
end
diff --git a/app/models/action_mailbox/inbound_email/incineratable.rb b/app/models/action_mailbox/inbound_email/incineratable.rb
index 364231a443..198846422c 100644
--- a/app/models/action_mailbox/inbound_email/incineratable.rb
+++ b/app/models/action_mailbox/inbound_email/incineratable.rb
@@ -2,27 +2,14 @@ module ActionMailbox::InboundEmail::Incineratable
extend ActiveSupport::Concern
included do
- before_update :remember_to_incinerate_later
- after_update_commit :incinerate_later, if: :incinerating_later?
+ after_update_commit :incinerate_later, if: -> { status_previously_changed? && processed? }
+ end
+
+ def incinerate_later
+ ActionMailbox::IncinerationJob.schedule self
end
def incinerate
Incineration.new(self).run
end
-
- private
- # TODO: Use enum change tracking once merged into Active Support
- def remember_to_incinerate_later
- if status_changed? && (delivered? || bounced? || failed?)
- @incinerating_later = true
- end
- end
-
- def incinerating_later?
- @incinerating_later ||= false
- end
-
- def incinerate_later
- ActionMailbox::InboundEmail::IncinerationJob.schedule(self)
- end
end
diff --git a/app/models/action_mailbox/inbound_email/incineratable/incineration.rb b/app/models/action_mailbox/inbound_email/incineratable/incineration.rb
index ab9311edfb..801cc0c8b9 100644
--- a/app/models/action_mailbox/inbound_email/incineratable/incineration.rb
+++ b/app/models/action_mailbox/inbound_email/incineratable/incineration.rb
@@ -4,7 +4,7 @@ class ActionMailbox::InboundEmail::Incineratable::Incineration
end
def run
- @inbound_email.destroy if due? && processed?
+ @inbound_email.destroy! if due? && processed?
end
private
@@ -13,6 +13,6 @@ class ActionMailbox::InboundEmail::Incineratable::Incineration
end
def processed?
- @inbound_email.delivered? || @inbound_email.bounced? || @inbound_email.failed?
+ @inbound_email.processed?
end
end
diff --git a/app/models/action_mailbox/inbound_email/routable.rb b/app/models/action_mailbox/inbound_email/routable.rb
index 48b357af45..8f5b0ddd39 100644
--- a/app/models/action_mailbox/inbound_email/routable.rb
+++ b/app/models/action_mailbox/inbound_email/routable.rb
@@ -2,7 +2,7 @@ module ActionMailbox::InboundEmail::Routable
extend ActiveSupport::Concern
included do
- after_create_commit :route_later, if: ->(inbound_email) { inbound_email.pending? }
+ after_create_commit :route_later, if: :pending?
end
def route_later