Class: Decidim::Admin::NewsletterRecipients

Inherits:
Query
  • Object
show all
Defined in:
app/queries/decidim/admin/newsletter_recipients.rb

Overview

A class used to find the recipients of the Newsletter depending on the params of the form

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(form) ⇒ NewsletterRecipients

Initializes the class.

form - params to filter the query



18
19
20
# File 'app/queries/decidim/admin/newsletter_recipients.rb', line 18

def initialize(form)
  @form = form
end

Class Method Details

.for(form) ⇒ Object

Syntactic sugar to initialize the class and return the queried objects.

form - params to filter the query



11
12
13
# File 'app/queries/decidim/admin/newsletter_recipients.rb', line 11

def self.for(form)
  new(form).query
end

Instance Method Details

#queryObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/queries/decidim/admin/newsletter_recipients.rb', line 22

def query
  recipients = recipients_base_query

  return recipients if @form.send_to_all_users
  return verified_users if @form.send_to_verified_users

  if filters_present?
    filtered_recipients = apply_filters(recipients)
    return recipients.none if filtered_recipients.empty?

    return filtered_recipients
  end

  recipients
end