Class: MailchimpNewsletterSubscriber

Inherits:
NewsletterSubscriber show all
Defined in:
app/models/mailchimp_newsletter_subscriber.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#emailObject

Returns the value of attribute email.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def email
  @email
end

#euidObject

Returns the value of attribute euid.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def euid
  @euid
end

#grouping_idObject

Returns the value of attribute grouping_id.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def grouping_id
  @grouping_id
end

#groupsObject

Returns the value of attribute groups.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def groups
  @groups
end

#member_info_dataObject

Returns the value of attribute member_info_data.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def member_info_data
  @member_info_data
end

#subscribedObject

Returns the value of attribute subscribed.



3
4
5
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 3

def subscribed
  @subscribed
end

Class Method Details

.new_from_mailchimp(attributes = {}) ⇒ Object

Instantiate a new subscriber based on data from a Mailchimp query like member_info. Does nothing with the database at this time.




20
21
22
23
24
25
26
27
28
29
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 20

def self.new_from_mailchimp(attributes = {})
  obj = MailchimpNewsletterSubscriber.new
  obj.member_info_data  = attributes
  obj.subscribed        = attributes['status'] == 'subscribed' ? true : false
  obj.email             = attributes['email']
  obj.euid              = attributes['euid']
  obj.grouping_id       = attributes['merges']['GROUPINGS'] ? attributes['merges']['GROUPINGS'][0]['id'] : nil
  obj.groups            = attributes['merges']['GROUPINGS'] ? attributes['merges']['GROUPINGS'][0]['groups'] : nil
  return obj
end

.subscriber_info(newsletter, email) ⇒ Object

Query for the subscriber info.




33
34
35
36
37
38
39
40
41
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 33

def self.subscriber_info(newsletter, email)
  api         = MailchimpNewsletter.api
  subscriber  = api.lists.member_info(id: newsletter.mc_id, emails: [email: email])
  if subscriber['success_count'] == 1
    return MailchimpNewsletterSubscriber.new_from_mailchimp(subscriber['data'][0])
  else
    return nil
  end
end

Instance Method Details

#interest_group?(name) ⇒ Boolean

is subscriber interested in the named group?


Returns:



7
8
9
10
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 7

def interest_group?(name)
  group = self.groups.detect {|group| group['name'] == name} if self.groups
  return (group ? group['interested'] : false)
end

#subscribed?Boolean


Returns:



13
14
15
# File 'app/models/mailchimp_newsletter_subscriber.rb', line 13

def subscribed?
  subscribed
end