Class: Pluginscan::AdvisoriesAPI

Inherits:
Object
  • Object
show all
Defined in:
lib/pluginscan/reports/vulnerability_report/advisories_api.rb

Overview

Responsible for calling an api endpoint and re-raising ruby errors with more information

Defined Under Namespace

Classes: ConnectionError, Error

Instance Method Summary collapse

Constructor Details

#initialize(api_name:, timeout:) ⇒ AdvisoriesAPI

Returns a new instance of AdvisoriesAPI.



10
11
12
13
# File 'lib/pluginscan/reports/vulnerability_report/advisories_api.rb', line 10

def initialize(api_name:, timeout:)
  @api_name = api_name
  @timeout = timeout
end

Instance Method Details

#get(uri) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/pluginscan/reports/vulnerability_report/advisories_api.rb', line 15

def get(uri)
  HTTParty.get(uri, timeout: @timeout)
rescue SocketError
  raise(ConnectionError, "Couldn't connect to #{@api_name} (SocketError)")
rescue Net::OpenTimeout
  raise(ConnectionError, "Connection to #{@api_name} timed out after #{@timeout} seconds")
end