Skip to content
Snippets Groups Projects
Commit 652d955c authored by Robert Speicher's avatar Robert Speicher
Browse files

Remove some duplication in the Notify mailer

parent b2b88b2f
No related branches found
No related tags found
1 merge request!1260Notify mailer refactor
Loading
@@ -12,20 +12,20 @@ class Notify < ActionMailer::Base
Loading
@@ -12,20 +12,20 @@ class Notify < ActionMailer::Base
def new_user_email(user_id, password) def new_user_email(user_id, password)
@user = User.find(user_id) @user = User.find(user_id)
@password = password @password = password
mail(to: @user.email, subject: "gitlab | Account was created for you") mail(to: @user.email, subject: subject("Account was created for you"))
end end
   
def new_issue_email(issue_id) def new_issue_email(issue_id)
@issue = Issue.find(issue_id) @issue = Issue.find(issue_id)
@project = @issue.project @project = @issue.project
mail(to: @issue.assignee_email, subject: "gitlab | new issue ##{@issue.id} | #{@issue.title} | #{@project.name}") mail(to: @issue.assignee_email, subject: subject("new issue ##{@issue.id}", @issue.title))
end end
   
def note_wall_email(recipient_id, note_id) def note_wall_email(recipient_id, note_id)
recipient = User.find(recipient_id) recipient = User.find(recipient_id)
@note = Note.find(note_id) @note = Note.find(note_id)
@project = @note.project @project = @note.project
mail(to: recipient.email, subject: "gitlab | #{@project.name}") mail(to: recipient.email, subject: subject)
end end
   
def note_commit_email(recipient_id, note_id) def note_commit_email(recipient_id, note_id)
Loading
@@ -34,7 +34,7 @@ class Notify < ActionMailer::Base
Loading
@@ -34,7 +34,7 @@ class Notify < ActionMailer::Base
@commit = @note.target @commit = @note.target
@commit = CommitDecorator.decorate(@commit) @commit = CommitDecorator.decorate(@commit)
@project = @note.project @project = @note.project
mail(to: recipient.email, subject: "gitlab | note for commit #{@commit.short_id} | #{@commit.title} | #{@project.name}") mail(to: recipient.email, subject: subject("note for commit #{@commit.short_id}", @commit.title))
end end
   
def note_merge_request_email(recipient_id, note_id) def note_merge_request_email(recipient_id, note_id)
Loading
@@ -42,7 +42,7 @@ class Notify < ActionMailer::Base
Loading
@@ -42,7 +42,7 @@ class Notify < ActionMailer::Base
@note = Note.find(note_id) @note = Note.find(note_id)
@merge_request = @note.noteable @merge_request = @note.noteable
@project = @note.project @project = @note.project
mail(to: recipient.email, subject: "gitlab | note for merge request !#{@merge_request.id} | #{@project.name}") mail(to: recipient.email, subject: subject("note for merge request !#{@merge_request.id}"))
end end
   
def note_issue_email(recipient_id, note_id) def note_issue_email(recipient_id, note_id)
Loading
@@ -50,7 +50,7 @@ class Notify < ActionMailer::Base
Loading
@@ -50,7 +50,7 @@ class Notify < ActionMailer::Base
@note = Note.find(note_id) @note = Note.find(note_id)
@issue = @note.noteable @issue = @note.noteable
@project = @note.project @project = @note.project
mail(to: recipient.email, subject: "gitlab | note for issue ##{@issue.id} | #{@project.name}") mail(to: recipient.email, subject: subject("note for issue ##{@issue.id}"))
end end
   
def note_wiki_email(recipient_id, note_id) def note_wiki_email(recipient_id, note_id)
Loading
@@ -58,13 +58,13 @@ class Notify < ActionMailer::Base
Loading
@@ -58,13 +58,13 @@ class Notify < ActionMailer::Base
@note = Note.find(note_id) @note = Note.find(note_id)
@wiki = @note.noteable @wiki = @note.noteable
@project = @note.project @project = @note.project
mail(to: recipient.email, subject: "gitlab | note for wiki | #{@project.name}") mail(to: recipient.email, subject: subject("note for wiki"))
end end
   
def new_merge_request_email(merge_request_id) def new_merge_request_email(merge_request_id)
@merge_request = MergeRequest.find(merge_request_id) @merge_request = MergeRequest.find(merge_request_id)
@project = @merge_request.project @project = @merge_request.project
mail(to: @merge_request.assignee_email, subject: "gitlab | new merge request !#{@merge_request.id} | #{@merge_request.title} | #{@project.name}") mail(to: @merge_request.assignee_email, subject: subject("new merge request !#{@merge_request.id}", @merge_request.title))
end end
   
def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id) def reassigned_merge_request_email(recipient_id, merge_request_id, previous_assignee_id)
Loading
@@ -72,7 +72,7 @@ class Notify < ActionMailer::Base
Loading
@@ -72,7 +72,7 @@ class Notify < ActionMailer::Base
@merge_request = MergeRequest.find(merge_request_id) @merge_request = MergeRequest.find(merge_request_id)
@previous_assignee ||= User.find(previous_assignee_id) @previous_assignee ||= User.find(previous_assignee_id)
@project = @merge_request.project @project = @merge_request.project
mail(to: recipient.email, subject: "gitlab | changed merge request !#{@merge_request.id} | #{@merge_request.title} | #{@project.name}") mail(to: recipient.email, subject: subject("changed merge request !#{@merge_request.id}", @merge_request.title))
end end
   
def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id) def reassigned_issue_email(recipient_id, issue_id, previous_assignee_id)
Loading
@@ -80,6 +80,30 @@ class Notify < ActionMailer::Base
Loading
@@ -80,6 +80,30 @@ class Notify < ActionMailer::Base
@issue = Issue.find(issue_id) @issue = Issue.find(issue_id)
@previous_assignee ||= User.find(previous_assignee_id) @previous_assignee ||= User.find(previous_assignee_id)
@project = @issue.project @project = @issue.project
mail(to: recipient.email, subject: "gitlab | changed issue ##{@issue.id} | #{@issue.title} | #{@project.name}") mail(to: recipient.email, subject: subject("changed issue ##{@issue.id}", @issue.title))
end
private
# Formats arguments into a String suitable for use as an email subject
#
# extra - Extra Strings to be inserted into the subject
#
# Examples
#
# >> subject('Lorem ipsum')
# => "gitlab | Lorem ipsum"
#
# # Automatically inserts Project name when @project is set
# >> @project = Project.last
# => #<Project id: 1, name: "Ruby on Rails", path: "ruby_on_rails", ...>
# >> subject('Lorem ipsum')
# => "gitlab | Lorem ipsum | Ruby on Rails"
#
# # Accepts multiple arguments
# >> subject('Lorem ipsum', 'Dolor sit amet')
# => "gitlab | Lorem ipsum | Dolor sit amet"
def subject(*extra)
"gitlab | " << extra.join(' | ') << (@project ? " | #{@project.name}" : "")
end end
end end
Loading
@@ -24,7 +24,7 @@ describe Notify do
Loading
@@ -24,7 +24,7 @@ describe Notify do
end end
   
it 'has the correct subject' do it 'has the correct subject' do
should have_subject /Account was created for you/ should have_subject /^gitlab \| Account was created for you$/
end end
   
it 'contains the new user\'s login name' do it 'contains the new user\'s login name' do
Loading
@@ -60,7 +60,7 @@ describe Notify do
Loading
@@ -60,7 +60,7 @@ describe Notify do
it_behaves_like 'an assignee email' it_behaves_like 'an assignee email'
   
it 'has the correct subject' do it 'has the correct subject' do
should have_subject /new issue ##{issue.id}/ should have_subject /new issue ##{issue.id} \| #{issue.title} \| #{project.name}/
end end
   
it 'contains a link to the new issue' do it 'contains a link to the new issue' do
Loading
@@ -76,7 +76,7 @@ describe Notify do
Loading
@@ -76,7 +76,7 @@ describe Notify do
it_behaves_like 'a multiple recipients email' it_behaves_like 'a multiple recipients email'
   
it 'has the correct subject' do it 'has the correct subject' do
should have_subject /changed issue/ should have_subject /changed issue ##{issue.id} \| #{issue.title}/
end end
   
it 'contains the name of the previous assignee' do it 'contains the name of the previous assignee' do
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment