blob: 39565df16636bb4b19b69081524d3dc45d1adcc2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# frozen_string_literal: true
# A newly received +InboundEmail+ will not be routed synchronously as part of ingress controller's receival.
# Instead, the routing will be done asynchronously, using a +RoutingJob+, to ensure maximum parallel capacity.
#
# By default, all newly created +InboundEmail+ records that have the status of +pending+, which is the default,
# will be scheduled for automatic, deferred routing.
module ActionMailbox::InboundEmail::Routable
extend ActiveSupport::Concern
included do
after_create_commit :route_later, if: :pending?
end
# Enqueue a +RoutingJob+ for this +InboundEmail+.
def route_later
ActionMailbox::RoutingJob.perform_later self
end
# Route this +InboundEmail+ using the routing rules declared on the +ApplicationMailbox+.
def route
ApplicationMailbox.route self
end
end
|