docbrown/app/labor/email_digest.rb
Mac Siri 0ea3f38dbf Implement one-click-unsubscribe (#192)
* Implement one-click-unsubscribe feature WIP

* Adjust email subscription page's css

* Add mobile scss

* Apply subscription logic to other email type

* Add back default email footer

* Create EmailSubscriptions request spec
2018-04-09 14:05:45 -07:00

33 lines
790 B
Ruby

# Usecase would be
# EmailDigest.send_periodic_digest_email
# OR
# EmailDigets.send_periodic_digest_email(Users.first(4))
class EmailDigest
def self.send_periodic_digest_email(users = [])
new(users).send_periodic_digest_email
end
def initialize(users = [])
@users = users.empty? ? get_users : users
end
def send_periodic_digest_email
@users.find_each do |user|
user_email_heuristic = EmailLogic.new(user).analyze
next unless user_email_heuristic.should_receive_email?
articles = user_email_heuristic.articles_to_send
begin
DigestMailer.digest_email(user, articles).deliver
rescue StandardError
puts "Email issue"
end
end
end
private
def get_users
User.where(email_digest_periodic: true)
end
end