module PriceHubble
class EntityError < StandardError
end
class RequestError < StandardError
attr_reader :response
def initialize(message = nil, response = nil)
@response = response
message ||= response.body.message if response.body.respond_to? :message
super(message)
end
end
class AuthenticationError < RequestError; end
class EntityNotFound < EntityError
attr_reader :entity, :criteria
def initialize(message = nil, entity = nil, criteria = {})
@entity = entity
@criteria = criteria
message ||= "Couldn't find #{entity} with #{criteria.inspect}"
super(message)
end
end
class EntityInvalid < EntityError
attr_reader :entity
def initialize(message = nil, entity = nil)
@entity = entity
message ||= "Invalid #{entity}"
super(message)
end
end
end