Add UserSegments#user_segment_emails helper method

Why:

Both Newsletters and Email Downloads need the same logic: To extract the
emails from all the users in the segment that have newsletter flag
active, removing all empty email values.

How:

1- UserSegments#user_segment_emails holds that repeated logic and is used
on both Newsletter & EmailDownload.

2- Rename Newsletter#list_of_recipients to list_of_recipient_emails as
it is more descriptive. There is no need to pass entire Users around,
only the emails are needed at Mailer#newsletter method.

3- Cleanup Newsletter#list_of_recipient_emails model spec scenario
This commit is contained in:
Bertocq
2018-03-01 20:01:14 +01:00
parent 99851e9588
commit 6b41b6487b
8 changed files with 20 additions and 17 deletions

View File

@@ -48,8 +48,8 @@ class Admin::NewslettersController < Admin::BaseController
@newsletter = Newsletter.find(params[:id])
if @newsletter.valid?
@newsletter.list_of_recipients.each do |recipient|
Mailer.newsletter(@newsletter, recipient).deliver_later
@newsletter.list_of_recipient_emails.each do |recipient_email|
Mailer.newsletter(@newsletter, recipient_email).deliver_later
end
@newsletter.update(sent_at: Time.current)