class Workarea::MailChimp::Gateway
Attributes
default_list_id[R]
email_interests_id[R]
Public Class Methods
acceptable_failure_codes()
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 11 def self.acceptable_failure_codes [ 232, # Email_NotExists 220, # List_InvalidImport (banned user / invalid email) 400, # Member exists and cannot be subscribed 404, # User not found 500 # Inexplicable intermittent MailChimp-side error ] end
Public Instance Methods
list()
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 51 def list @list ||= MailChimp::Gateway::List.new( default_list_id, email_interests_id ) end
members()
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 47 def members @members ||= MailChimp::Gateway::Members.new(default_list_id) end
subscribe(email, options = {})
click to toggle source
Use this for new or current subscriptions
email: String new_email: String user: User
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 27 def subscribe(email, options = {}) members.subscribe( SubscribeArgumentBuilder.new( email, options, default_list_id, email_interests_id ).build ) end
unsubscribe(email, options = {})
click to toggle source
Unsubscribe email from default list. This does not delete the record in MailChimp
.
email: String
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 43 def unsubscribe(email, options = {}) members.unsubscribe(email) end
Private Instance Methods
acceptable_failure?(error)
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 61 def acceptable_failure?(error) self.class.acceptable_failure_codes.include?(error.body["status"]) end
error_hash(error)
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 73 def error_hash(error) { "error" => error.message } end
response_error_handler(error)
click to toggle source
# File lib/integrations/workarea/mail_chimp/gateway.rb, line 65 def response_error_handler(error) if !acceptable_failure?(error) raise MailChimpSubscriptionError, error.message end error_hash(error) end