Skip to content

Commit 503acea

Browse files
committed
refactor(invitations): extract send_email_with_logging helper method
1 parent 66708fc commit 503acea

1 file changed

Lines changed: 17 additions & 32 deletions

File tree

app/models/concerns/workshop_invitation_manager_concerns.rb

Lines changed: 17 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -117,14 +117,7 @@ def invite_coaches_to_virtual_workshop(workshop, logger = nil)
117117
next unless invitation
118118

119119
count += 1
120-
if logger
121-
begin
122-
VirtualWorkshopInvitationMailer.invite_coach(workshop, coach, invitation).deliver_now
123-
logger.log_success(coach, invitation)
124-
rescue StandardError => e
125-
logger.log_failure(coach, invitation, e)
126-
end
127-
else
120+
send_email_with_logging(logger, coach, invitation) do
128121
VirtualWorkshopInvitationMailer.invite_coach(workshop, coach, invitation).deliver_now
129122
end
130123
end
@@ -138,14 +131,7 @@ def invite_coaches_to_workshop(workshop, logger = nil)
138131
next unless invitation
139132

140133
count += 1
141-
if logger
142-
begin
143-
WorkshopInvitationMailer.invite_coach(workshop, coach, invitation).deliver_now
144-
logger.log_success(coach, invitation)
145-
rescue StandardError => e
146-
logger.log_failure(coach, invitation, e)
147-
end
148-
else
134+
send_email_with_logging(logger, coach, invitation) do
149135
WorkshopInvitationMailer.invite_coach(workshop, coach, invitation).deliver_now
150136
end
151137
end
@@ -159,14 +145,7 @@ def invite_students_to_virtual_workshop(workshop, logger = nil)
159145
next unless invitation
160146

161147
count += 1
162-
if logger
163-
begin
164-
VirtualWorkshopInvitationMailer.invite_student(workshop, student, invitation).deliver_now
165-
logger.log_success(student, invitation)
166-
rescue StandardError => e
167-
logger.log_failure(student, invitation, e)
168-
end
169-
else
148+
send_email_with_logging(logger, student, invitation) do
170149
VirtualWorkshopInvitationMailer.invite_student(workshop, student, invitation).deliver_now
171150
end
172151
end
@@ -180,20 +159,26 @@ def invite_students_to_workshop(workshop, logger = nil)
180159
next unless invitation
181160

182161
count += 1
183-
if logger
184-
begin
185-
WorkshopInvitationMailer.invite_student(workshop, student, invitation).deliver_now
186-
logger.log_success(student, invitation)
187-
rescue StandardError => e
188-
logger.log_failure(student, invitation, e)
189-
end
190-
else
162+
send_email_with_logging(logger, student, invitation) do
191163
WorkshopInvitationMailer.invite_student(workshop, student, invitation).deliver_now
192164
end
193165
end
194166
count
195167
end
196168

169+
def send_email_with_logging(logger, member, invitation)
170+
if logger
171+
begin
172+
yield
173+
logger.log_success(member, invitation)
174+
rescue StandardError => e
175+
logger.log_failure(member, invitation, e)
176+
end
177+
else
178+
yield
179+
end
180+
end
181+
197182
def retrieve_and_notify_waitlisted(workshop, role:)
198183
WaitingList.by_workshop(workshop).where_role(role).each do |waiting_list|
199184
WorkshopInvitationMailer.notify_waiting_list(waiting_list.invitation).deliver_now

0 commit comments

Comments
 (0)