Files
grecia/app/controllers/admin/emails_download_controller.rb
Bertocq 6b41b6487b 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
2018-03-01 20:59:20 +01:00

19 lines
448 B
Ruby

class Admin::EmailsDownloadController < Admin::BaseController
def index
end
def generate_csv
users_segment = params[:users_segment]
filename = t("admin.segment_recipient.#{users_segment}")
csv_file = users_segment_emails_csv(users_segment)
send_data csv_file, filename: "#{filename}.csv"
end
private
def users_segment_emails_csv(users_segment)
UserSegments.user_segment_emails(users_segment).join(',')
end
end