summaryrefslogtreecommitdiff
path: root/lib/gitlab/email/service_desk_receiver.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/email/service_desk_receiver.rb')
-rw-r--r--lib/gitlab/email/service_desk_receiver.rb15
1 files changed, 10 insertions, 5 deletions
diff --git a/lib/gitlab/email/service_desk_receiver.rb b/lib/gitlab/email/service_desk_receiver.rb
index 1ee5c10097b..133c4ee4b45 100644
--- a/lib/gitlab/email/service_desk_receiver.rb
+++ b/lib/gitlab/email/service_desk_receiver.rb
@@ -5,14 +5,19 @@ module Gitlab
class ServiceDeskReceiver < Receiver
private
- def find_handler(mail)
- key = service_desk_key(mail)
- return unless key
+ def find_handler
+ return unless service_desk_key
- Gitlab::Email::Handler::ServiceDeskHandler.new(mail, nil, service_desk_key: key)
+ Gitlab::Email::Handler::ServiceDeskHandler.new(mail, nil, service_desk_key: service_desk_key)
end
- def service_desk_key(mail)
+ def service_desk_key
+ strong_memoize(:service_desk_key) do
+ find_service_desk_key
+ end
+ end
+
+ def find_service_desk_key
mail.to.find do |address|
key = ::Gitlab::ServiceDeskEmail.key_from_address(address)
break key if key