class Chimpy::EmailService

Attributes

mailchimp[R]
mailchimp_api_key[R]
mailchimp_list_id[R]

Public Class Methods

new() click to toggle source
# File lib/chimpy/email_service.rb, line 7
def initialize
  @mailchimp_api_key = Chimpy.configuration.mailchimp_api_key
  @mailchimp_list_id = Chimpy.configuration.mailchimp_list_id
  @mailchimp = create_mailchimp_client
end

Public Instance Methods

sync(users) click to toggle source
# File lib/chimpy/email_service.rb, line 13
def sync(users)
  struct = users.map { |user| { email: { email: user.email } } }
  response = mailchimp.lists.batch_subscribe(id: mailchimp_list_id,
                                             batch: struct,
                                             update_existing: true,
                                             double_optin: false)
  synced_users(response)
end

Private Instance Methods

create_mailchimp_client() click to toggle source
# File lib/chimpy/email_service.rb, line 36
def create_mailchimp_client
  Gibbon::API.new(mailchimp_api_key)
end
synced_users(response) click to toggle source
# File lib/chimpy/email_service.rb, line 24
def synced_users(response)
  emails = []
  response['adds'].each do |add|
    emails << add['email']
  end

  response['updates'].each do |update|
    emails << update['email']
  end
  emails
end