class Ssllabs::Api
Attributes
current_assessments[R]
max_assessments[R]
Public Class Methods
new()
click to toggle source
# File lib/ssllabs/api.rb, line 14 def initialize @max_assessments = 0 @current_assessments = 0 end
Public Instance Methods
analyse(params = {})
click to toggle source
# File lib/ssllabs/api.rb, line 53 def analyse(params = {}) Host.load request(:analyze, params) end
get_endpoint_data(params = {})
click to toggle source
# File lib/ssllabs/api.rb, line 57 def get_endpoint_data(params = {}) Endpoint.load request(:get_endpoint_data, params) end
get_status_codes()
click to toggle source
# File lib/ssllabs/api.rb, line 61 def get_status_codes StatusCodes.load request(:get_status_codes) end
info()
click to toggle source
# File lib/ssllabs/api.rb, line 49 def info Info.load request(:info) end
request(name, params = {})
click to toggle source
# File lib/ssllabs/api.rb, line 19 def request(name, params = {}) name = name.to_s.camelize(:lower) uri = URI("#{API_LOCATION}#{name}?#{URI.encode_www_form(params)}") r = Net::HTTP.get_response(uri) if r.code.to_i == 200 @max_assessments = r['X-Max-Assessments'] @current_assessments = r['X-Current-Assessments'] r = JSON.load(r.body) if r.key?('errors') raise InvocationError, "API returned: #{r['errors']}" end return r end case r.code.to_i when 400 raise InvocationError, "invalid parameters" when 429 raise RequestRateTooHigh, "request rate is too high, please slow down" when 500 raise InternalError, "service encountered an error, sleep 5 minutes" when 503 raise ServiceNotAvailable, "service is not available, sleep 15 minutes" when 529 raise ServiceOverloaded, "service is overloaded, sleep 30 minutes" else raise StandardError, "http error code #{r.code}" end end