summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2016-05-23 22:16:40 +0800
committerLin Jen-Shin <godfat@godfat.org>2016-05-23 22:16:40 +0800
commit863d8e5ae55debc08bf095354aee0a63417624fc (patch)
tree5c7a8418efe8921c5d524dae9cec771b1da437a4
parentc64cd113ccd16fa210f9ea2808deb044aadc8f61 (diff)
downloadgitlab-ce-863d8e5ae55debc08bf095354aee0a63417624fc.tar.gz
use split and try to unify error raising
-rw-r--r--lib/gitlab/email/handler/create_issue_handler.rb18
-rw-r--r--lib/gitlab/email/handler/create_note_handler.rb2
-rw-r--r--lib/gitlab/email/receiver.rb2
3 files changed, 10 insertions, 12 deletions
diff --git a/lib/gitlab/email/handler/create_issue_handler.rb b/lib/gitlab/email/handler/create_issue_handler.rb
index cba8f2b61f6..7e3506bbd3f 100644
--- a/lib/gitlab/email/handler/create_issue_handler.rb
+++ b/lib/gitlab/email/handler/create_issue_handler.rb
@@ -5,8 +5,16 @@ module Gitlab
module Email
module Handler
class CreateIssueHandler < BaseHandler
+ attr_reader :project_namespace, :authentication_token
+
+ def initialize(mail, mail_key)
+ super(mail, mail_key)
+ @project_namespace, @authentication_token =
+ mail_key && mail_key.split('+', 2)
+ end
+
def can_handle?
- !!project
+ !!(project_namespace && project)
end
def execute
@@ -28,14 +36,6 @@ module Gitlab
end
private
- def authentication_token
- mail_key[/[^\+]+$/]
- end
-
- def project_namespace
- mail_key[/^[^\+]+/]
- end
-
def create_issue
Issues::CreateService.new(
project,
diff --git a/lib/gitlab/email/handler/create_note_handler.rb b/lib/gitlab/email/handler/create_note_handler.rb
index 282f1844097..b91dd623161 100644
--- a/lib/gitlab/email/handler/create_note_handler.rb
+++ b/lib/gitlab/email/handler/create_note_handler.rb
@@ -6,7 +6,7 @@ module Gitlab
module Handler
class CreateNoteHandler < BaseHandler
def can_handle?
- !!sent_notification
+ !!(mail_key && sent_notification)
end
def execute
diff --git a/lib/gitlab/email/receiver.rb b/lib/gitlab/email/receiver.rb
index 7038346192b..a497d09b0a8 100644
--- a/lib/gitlab/email/receiver.rb
+++ b/lib/gitlab/email/receiver.rb
@@ -28,8 +28,6 @@ module Gitlab
mail = build_mail
mail_key = extract_mail_key(mail)
- raise SentNotificationNotFoundError unless mail_key
-
if handler = Handler.for(mail, mail_key)
handler.execute
elsif mail_key =~ %r{/|\+}