Class: QuickSearch::ListUnsubscribeQuickSearch

Inherits:
BaseQuickSearch
  • Object
show all
Defined in:
app/queries/quick_search/list_unsubscribe_quick_search.rb

Overview

Query object: list unsubscribe quick search.

Instance Method Summary collapse

Instance Method Details

#extract_term(query) ⇒ Object



5
6
7
8
9
10
11
12
13
# File 'app/queries/quick_search/list_unsubscribe_quick_search.rb', line 5

def extract_term(query)
  email = query.scan(ContactPoint::EMAIL_REGEXP).join.strip
  return unless email

  uid = email.scan(/list-unsubscribe\+([\w-]+)@/)&.first&.first
  return unless uid

  uid
end

#perform_find(term, _existing_results = []) ⇒ Object

term is an communication uid



16
17
18
19
# File 'app/queries/quick_search/list_unsubscribe_quick_search.rb', line 16

def perform_find(term, _existing_results = [])
  emails = CommunicationRecipient.joins(:communication).where(communications: { unique_id: term }).emails.pluck(:detail)
  EmailPreference.where(email: emails)
end