Class: AlchemyApi::Base
- Inherits:
-
MonsterMash::Base
- Object
- MonsterMash::Base
- AlchemyApi::Base
show all
- Defined in:
- lib/alchemy_api/base.rb
Class Method Summary
collapse
Class Method Details
.check_json_for_errors_and_raise!(json) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
# File 'lib/alchemy_api/base.rb', line 16
def self.check_json_for_errors_and_raise!(json)
if json['status'] == 'ERROR'
case json['statusInfo']
when 'invalid-api-key'
raise InvalidApiKeyError, "The API key you sent (#{AlchemyApi.api_key.inspect}) is invalid! Please set AlchemyApi.api_key!"
when 'cannot-retrieve'
raise CannotRetrieveUrlError, "The URL (#{json['url']}) could not be retrieved."
when 'cannot-retrieve:http-redirect-limit'
raise RedirectionLimitError, "The URL (#{json['url']}) could not be retrieved, as it reached a redirect limit."
when 'page-is-not-html'
raise PageIsNotValidHtmlError, "The page at #{json['url']} is not valid HTML!"
when 'content-exceeds-size-limit'
raise ContentExceedsMaxLimitError, "The page at #{json['url']} is larger than 600KB!"
when 'invalid-html'
raise InvalidHtmlError, "The HTML sent was invalid!"
when 'content-is-empty'
raise ContentIsEmptyError, "The content you provided was empty!"
else
raise UnknownError, "Got an unknown error: #{json['statusInfo']}"
end
end
end
|
.get_json(response) ⇒ Object
10
11
12
13
14
|
# File 'lib/alchemy_api/base.rb', line 10
def self.get_json(response)
json = JSON.parse(response.body)
check_json_for_errors_and_raise!(json)
json
end
|