Module: MaleChimp::Exception

Defined in:
lib/malechimp/exception.rb

Constant Summary collapse

MaleChimpError =

Exception hierarchy for good ol’ MaleChimp

Class.new(StandardError)
AuthorizationError =
Class.new(MaleChimpError)
ListError =
Class.new(MaleChimpError)
ListInvalidInterestFieldType =
Class.new(ListError)
ListInvalidOption =
Class.new(ListError)
ListInvalidUnsubMember =
Class.new(ListError)
ListInvalidBounceMember =
Class.new(ListError)
ListAlreadySubscribed =
Class.new(ListError)
ListNotSubscribed =
Class.new(ListError)
ListInvalidImport =
Class.new(ListError)
EmailError =
Class.new(MaleChimpError)
EmailAlreadySubscribed =
Class.new(EmailError)
EmailAlreadyUnsubscribed =
Class.new(EmailError)
EmailNotExists =
Class.new(EmailError)
EmailNotSubscribed =
Class.new(EmailError)
FAULT_CODE_MAPPING =

Map our fancy exception hierarchy to MaleChimps XML RPC fault codes

{
  210	=> ListInvalidInterestFieldType,
  211	=> ListInvalidOption,
  212	=> ListInvalidUnsubMember,
  213	=> ListInvalidBounceMember,
  214	=> ListAlreadySubscribed,
  215	=> ListNotSubscribed,
  220	=> ListInvalidImport,
  230	=> EmailAlreadySubscribed,
  231	=> EmailAlreadyUnsubscribed,
  232	=> EmailNotExists,
  233	=> EmailNotSubscribed
}

Class Method Summary collapse

Class Method Details

.lookup(err) ⇒ Object



37
38
39
40
41
42
43
44
# File 'lib/malechimp/exception.rb', line 37

def self.lookup(err)
  if err.respond_to?(:faultCode)
    code = err.faultCode.to_i
  else
    code = err.to_i
  end
  FAULT_CODE_MAPPING[code]
end