Class: EmailUnsubscribeHandler
- Inherits:
-
Object
- Object
- EmailUnsubscribeHandler
- Defined in:
- app/subscribers/email_unsubscribe_handler.rb
Overview
Pub/sub subscriber: email unsubscribe handler.
Instance Method Summary collapse
Instance Method Details
#call(event) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/subscribers/email_unsubscribe_handler.rb', line 5 def call(event) email = event.data[:email] categories = event.data[:categories] return unless email.present? && categories.present? party_ids = Party.where(type: %w[Customer Contact]) .joins(:contact_points) .where(ContactPoint[:detail].eq(email)) .pluck("parties.id") Rails.logger.info "EmailUnsubscribeHandler evaluating party_ids #{party_ids} linked to email #{email}" return if party_ids.blank? activities = Activity.open_activities .joins(activity_type: { activity_chain_types: :email_template }) .merge(ActivityType.not_tagged_with(:sale)) .where(party_id: party_ids) .where(email_templates: { category: categories }) activities.each do |activity| activity.new_note = "Cancelled due to email unsubscription event for email: #{email}, categories: #{categories.join(', ')}" activity.cancel end end |