class EasyMailchimp::Base
Attributes
logger[R]
Public Class Methods
new()
click to toggle source
# File lib/easy_mailchimp/base.rb, line 3 def initialize @config = ::EasyMailchimp.config @logger = ::EasyMailchimp::Logger.new(@config.logger) @gibbon = ::Gibbon::Request.new({ api_key: @config.api_key, api_endpoint: endpoint, timeout: 60 }) end
Public Instance Methods
create_member(list_id, info = {})
click to toggle source
# File lib/easy_mailchimp/base.rb, line 16 def create_member(list_id, info = {}) email = info[:email] || '' merge_fields = info[:merge_fields] || {} begin @gibbon.lists(list_id).members.create({ body: { email_address: email, status: 'subscribed', merge_fields: merge_fields } }) rescue ::Gibbon::MailChimpError => ex logger.info("ERROR: #{ex.message} - #{ex.raw_body}", 'Mailchimp::Base#create_member') raise end end
get_list_name(list_id)
click to toggle source
# File lib/easy_mailchimp/base.rb, line 35 def get_list_name(list_id) list_map = {} lists = @gibbon.lists.retrieve['lists'] lists.map { |hsh| list_map[hsh["id"]] = hsh["name"] } list_map.select { |k,v| k == list_id }.values.first rescue => ex logger.info("ERROR: #{ex.message}", 'Mailchimp::Base#get_list_name') raise end
Private Instance Methods
datacenter_from(token)
click to toggle source
# File lib/easy_mailchimp/base.rb, line 52 def datacenter_from(token) token.match(/\-([a-z\d]+)\z/) return $~[1] if $~ "" end
endpoint()
click to toggle source
# File lib/easy_mailchimp/base.rb, line 48 def endpoint @config.api_endpoint.gsub('{{dc}}', datacenter_from(@config.api_key)) end