Skip to content

Commit 03a1cef

Browse files
committed
Migrate mailers to use parametrized attributes
1 parent b1cea73 commit 03a1cef

File tree

7 files changed

+30
-26
lines changed

7 files changed

+30
-26
lines changed

app/controllers/groups_controller.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def request_access
6363
@group.admins.each do |admin|
6464
send_message(admin, :group_request)
6565

66-
AccessRequestMailer.send_access_request(current_user, admin, @group).deliver_later
66+
AccessRequestMailer.with(user: current_user, admin:, group: @group).send_access_request.deliver_later
6767
end
6868
@group.add(current_user, role: :applicant)
6969
redirect_to Group

app/controllers/task_contributions_controller.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class TaskContributionsController < ApplicationController
88

99
def approve_changes
1010
if @task.apply_contribution(@task_contribution)
11-
TaskContributionMailer.send_approval_info(@task_contribution).deliver_later
11+
TaskContributionMailer.with(task_contrib: @task_contribution).send_approval_info.deliver_later
1212
redirect_to @task, notice: t('.success')
1313
else
1414
redirect_to [@task, @task_contribution], alert: t('.error')
@@ -27,7 +27,7 @@ def discard_changes
2727
def reject_changes
2828
duplicate = @task_contribution.decouple
2929
if duplicate
30-
TaskContributionMailer.send_rejection_info(@task_contribution, duplicate).deliver_later
30+
TaskContributionMailer.with(task_contrib: @task_contribution, duplicate:).send_rejection_info.deliver_later
3131
redirect_to @task, notice: t('.success')
3232
else
3333
redirect_to [@task, @task_contribution], alert: t('.error')
@@ -78,7 +78,7 @@ def create # rubocop:disable Metrics/AbcSize
7878
authorize @task_contribution
7979

8080
if @task_contribution.save(context: :force_validations)
81-
TaskContributionMailer.send_contribution_request(@task_contribution).deliver_later
81+
TaskContributionMailer.with(task_contrib: @task_contribution).send_contribution_request.deliver_later
8282
redirect_to [@task, @task_contribution], notice: t('common.notices.object_created', model: TaskContribution.model_name.human)
8383
else
8484
@task = @task_contribution.suggestion

app/mailers/access_request_mailer.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
# frozen_string_literal: true
22

33
class AccessRequestMailer < ApplicationMailer
4-
def send_access_request(user, admin, group)
5-
@user = user
6-
@admin = admin
7-
@group = group
4+
def send_access_request
5+
@user = params.fetch(:user)
6+
@admin = params.fetch(:admin)
7+
@group = params.fetch(:group)
8+
89
I18n.with_locale(@admin.preferred_locale || I18n.default_locale) do
910
mail(to: @admin.email, subject: t('groups.access_request_mailer.subject', user: @user.name, group: @group.name))
1011
end

app/mailers/task_contribution_mailer.rb

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
# frozen_string_literal: true
22

33
class TaskContributionMailer < ApplicationMailer
4-
def send_contribution_request(task_contrib)
5-
@task_author = task_contrib.base.user
6-
@task_contrib = task_contrib
7-
@contrib_author = task_contrib.suggestion.user
4+
def send_contribution_request
5+
@task_contrib = params.fetch(:task_contrib)
6+
@task_author = @task_contrib.base.user
7+
@contrib_author = @task_contrib.suggestion.user
8+
89
I18n.with_locale(@task_author.preferred_locale || I18n.default_locale) do
910
mail(to: @task_author.email,
1011
subject: t('task_contributions.mailer.contribution_request.subject_message', contrib_author: @contrib_author,
1112
task: @task_contrib.base.title))
1213
end
1314
end
1415

15-
def send_approval_info(task_contrib)
16-
@task_contrib = task_contrib
17-
@contrib_author = task_contrib.suggestion.user
16+
def send_approval_info
17+
@task_contrib = params.fetch(:task_contrib)
18+
@contrib_author = @task_contrib.suggestion.user
19+
1820
I18n.with_locale(@contrib_author.preferred_locale || I18n.default_locale) do
1921
mail(to: @contrib_author.email,
2022
subject: t('task_contributions.mailer.approval_info.subject_message', task: @task_contrib.base.title))
2123
end
2224
end
2325

24-
def send_rejection_info(task_contrib, duplicate)
25-
@task_contrib = task_contrib
26-
@contrib_author = task_contrib.suggestion.user
27-
@duplicate = duplicate
26+
def send_rejection_info
27+
@task_contrib = params.fetch(:task_contrib)
28+
@contrib_author = @task_contrib.suggestion.user
29+
@duplicate = params.fetch(:duplicate)
30+
2831
I18n.with_locale(@contrib_author.preferred_locale || I18n.default_locale) do
2932
mail(to: @contrib_author.email,
3033
subject: t('task_contributions.mailer.rejection_info.subject_message', task: @task_contrib.base.title))

spec/mailers/previews/access_request_mailer_preview.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@ def send_access_request
77
group = FactoryBot.build(:group, id: 1)
88
admin = group.group_memberships.find(&:role_admin?).user
99
user = FactoryBot.build(:user)
10-
AccessRequestMailer.send_access_request(user, admin, group)
10+
AccessRequestMailer.with(user:, admin:, group:).send_access_request
1111
end
1212
end

spec/mailers/previews/task_contribution_mailer_preview.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,19 @@ class TaskContributionMailerPreview < ActionMailer::Preview
66
def send_contribution_request
77
base = FactoryBot.build(:task, id: 1)
88
task_contribution = FactoryBot.build(:task_contribution, base:, id: 2)
9-
TaskContributionMailer.send_contribution_request(task_contribution)
9+
TaskContributionMailer.with(task_contrib: task_contribution).send_contribution_request
1010
end
1111

1212
def send_approval_info
1313
base = FactoryBot.build(:task, id: 1)
1414
task_contribution = FactoryBot.build(:task_contribution, base:, id: 2)
15-
TaskContributionMailer.send_approval_info(task_contribution)
15+
TaskContributionMailer.wtih(task_contrib: task_contribution).send_approval_info
1616
end
1717

1818
def send_rejection_info
1919
base = FactoryBot.build(:task, id: 1)
2020
duplicate = FactoryBot.build(:task, parent: base, id: 3)
2121
task_contribution = FactoryBot.build(:task_contribution, base:, id: 2)
22-
TaskContributionMailer.send_rejection_info(task_contribution, duplicate)
22+
TaskContributionMailer.with(task_contrib: task_contribution, duplicate:).send_rejection_info
2323
end
2424
end

spec/mailers/task_contribution_mailer_spec.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
let(:task_contrib) { create(:task_contribution) }
88

99
describe '#contribution_request' do
10-
subject(:contribution_request) { described_class.send_contribution_request(task_contrib) }
10+
subject(:contribution_request) { described_class.with(task_contrib:).send_contribution_request }
1111

1212
it 'sends an email' do
1313
expect(contribution_request.to).to include(task_contrib.base.user.email)
@@ -23,7 +23,7 @@
2323
end
2424

2525
describe '#approval_info' do
26-
subject(:approval_info) { described_class.send_approval_info(task_contrib) }
26+
subject(:approval_info) { described_class.with(task_contrib:).send_approval_info }
2727

2828
it 'sends an email' do
2929
expect(approval_info.to).to include(task_contrib.suggestion.user.email)
@@ -37,7 +37,7 @@
3737
end
3838

3939
describe '#rejection_info' do
40-
subject(:rejection_info) { described_class.send_rejection_info(task_contrib, duplicate_task) }
40+
subject(:rejection_info) { described_class.with(task_contrib:, duplicate: duplicate_task).send_rejection_info }
4141

4242
let(:duplicate_task) { create(:task) }
4343

0 commit comments

Comments
 (0)