lib/clever_reach/errors.rb
module CleverReach
module Errors
# http://support.cleverreach.de/entries/20674817-fehlercode-api
class BaseError < StandardError
end
class InvalidAPIKey < BaseError
def initialize
super('invalid API key')
end
end
class NeedSessionBeforeUsage < BaseError
def initialize
super('need session before usage')
end
end
class PermissionDenied < BaseError
def initialize
super('permission denied')
end
end
class DataNotFound < BaseError
def initialize
super('data not found')
end
end
class EmailInvalid < BaseError
def initialize
super('email invalid')
end
end
class EmailBlacklisted < BaseError
def initialize
super('email blacklisted')
end
end
class DuplicateData < BaseError
def initialize
super('duplicate data')
end
end
class SubscriberAlreadyActive < BaseError
def initialize
super('subscriber already active')
end
end
class InsertingOrderFailed < BaseError
def initialize
super('inserting order failed')
end
end
class BatchTooBig < BaseError
def initialize
super('batch too big (max 50)')
end
end
class SubscriberAlreadyInactive < BaseError
def initialize
super('subscriber already inactive')
end
end
class GivenEmailIsTooShort < BaseError
def initialize
super('given email is too short')
end
end
class NoFormsAvailable < BaseError
def initialize
super('no forms available')
end
end
class ErrorSavingFilter < BaseError
def initialize
super('error saving filter')
end
end
ErrorMap = {
1 => InvalidAPIKey,
5 => NeedSessionBeforeUsage,
10 => PermissionDenied,
20 => DataNotFound,
30 => EmailInvalid,
40 => EmailBlacklisted,
50 => DuplicateData,
60 => SubscriberAlreadyActive,
70 => InsertingOrderFailed,
80 => BatchTooBig,
90 => SubscriberAlreadyInactive,
100 => GivenEmailIsTooShort,
110 => NoFormsAvailable,
120 => ErrorSavingFilter,
}
def self.lookup(code)
ErrorMap[code]
end
end
end