Class: Mailchimp::BaseAdapter
- Inherits:
-
Object
- Object
- Mailchimp::BaseAdapter
- Defined in:
- lib/generators/saaskit/install/templates/app/adapters/mailchimp/base_adapter.rb
Constant Summary collapse
- MAILCHIMP_API_KEY =
Rails.application.credentials[:mailchimp][:api_key]
- MAILCHIMP_AUDIENCE_ID =
Rails.application.credentials[:mailchimp][:audience_id]
Instance Method Summary collapse
- #build_options(options) ⇒ Object
-
#initialize ⇒ BaseAdapter
constructor
A new instance of BaseAdapter.
- #pending_subscribe(options) ⇒ Object
Constructor Details
#initialize ⇒ BaseAdapter
Returns a new instance of BaseAdapter.
6 7 8 9 10 11 12 |
# File 'lib/generators/saaskit/install/templates/app/adapters/mailchimp/base_adapter.rb', line 6 def initialize @client = ::Gibbon::Request.new(api_key: MAILCHIMP_API_KEY) @client.timeout = 30 @client.open_timeout = 30 @client.symbolize_keys = true @client.debug = false end |
Instance Method Details
#build_options(options) ⇒ Object
42 43 44 45 46 47 48 49 |
# File 'lib/generators/saaskit/install/templates/app/adapters/mailchimp/base_adapter.rb', line 42 def () if .key?(:user_id) user = User.find([:user_id]) {email: user.email, first_name: user.first_name, last_name: user.last_name} elsif .key?(:email) {email: [:email]} end end |
#pending_subscribe(options) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/generators/saaskit/install/templates/app/adapters/mailchimp/base_adapter.rb', line 14 def pending_subscribe() = () = { list_id: MAILCHIMP_AUDIENCE_ID, status: "pending", }.merge!() body = { 'email_address': [:email], 'status': [:status], } body[:merge_fields] = {} if .key?(:first_name) || .key?(:last_name) body[:merge_fields][:FNAME] = [:first_name] if .key?(:first_name) body[:merge_fields][:LNAME] = [:last_name] if .key?(:last_name) email_hash = Digest::MD5.hexdigest([:email].downcase) begin @client.lists([:list_id]).members(email_hash).upsert(body: body) rescue Gibbon::MailChimpError => exception OpenStruct.new(success?: false, error: "Subscribe failed", detail: exception.detail) else OpenStruct.new(success?: true, error: nil, detail: nil) end end |