lib/lol/request.rb in ruby-lol-0.9.17 vs lib/lol/request.rb in ruby-lol-0.9.18
- old
+ new
@@ -1,7 +1,6 @@
require "uri"
-require "lol/invalid_api_response"
module Lol
class NotFound < StandardError; end
class InvalidCacheStore < StandardError; end
@@ -32,11 +31,11 @@
# Returns a full url for an API call
# @param path [String] API path to call
# @return [String] full fledged url
def api_url path, params = {}
query_string = URI.encode_www_form params.merge api_key: api_key
- File.join "http://prod.api.pvp.net/api/lol/#{region}/#{self.class.api_version}/", "#{path}?#{query_string}"
+ File.join "http://#{region}.api.pvp.net/api/lol/#{region}/#{self.class.api_version}/", "#{path}?#{query_string}"
end
# Returns just a path from a full api url
# @return [String]
def clean_url(url)
@@ -50,11 +49,13 @@
if cached? && result = store.get(clean_url(url))
return JSON.parse(result)
end
response = self.class.get(url)
- raise NotFound.new("404 Not Found") if response.respond_to?(:code) && response.not_found?
- raise InvalidAPIResponse.new(url, response) if response.is_a?(Hash) && response["status"]
+ if response.respond_to?(:code) && !(200...300).include?(response.code)
+ raise NotFound.new("404 Not Found") if response.not_found?
+ raise InvalidAPIResponse.new(url, response)
+ end
store.setex clean_url(url), ttl, response.to_json if cached?
response
end