class ATS::ThreatGrid::API

Constants

HEADERS

Attributes

api_key[R]
host[R]
http[R]
port[R]
scheme[R]

Public Class Methods

new(configuration:, debug: false) click to toggle source
# File lib/ats/threat_grid/api.rb, line 11
def initialize(configuration:, debug: false)
  @http = Net::Hippie::Client.new(headers: HEADERS, verify_mode: debug ? OpenSSL::SSL::VERIFY_NONE : nil)
  @configuration = configuration
  @port = configuration[:port]
  @scheme = configuration[:scheme]
  @host = configuration[:host]
  @api_key = configuration[:api_key]
end

Public Instance Methods

get(url, params: {}, version: 3) click to toggle source
# File lib/ats/threat_grid/api.rb, line 40
def get(url, params: {}, version: 3)
  http.get(build_uri(url, version: version), body: default_payload.merge(params)) do |request, response|
    JSON.parse(response.body, symbolize_names: true)[:data]
  end
end
organizations() click to toggle source
# File lib/ats/threat_grid/api.rb, line 28
def organizations
  ATS::ThreatGrid::Organizations.new(self)
end
samples() click to toggle source
# File lib/ats/threat_grid/api.rb, line 32
def samples
  ATS::ThreatGrid::Samples.new(self)
end
users() click to toggle source
# File lib/ats/threat_grid/api.rb, line 24
def users
  ATS::ThreatGrid::Users.new(self)
end
whoami() click to toggle source
# File lib/ats/threat_grid/api.rb, line 20
def whoami
  get("session/whoami")
end

Private Instance Methods

build_uri(relative_url, version:) click to toggle source
# File lib/ats/threat_grid/api.rb, line 52
def build_uri(relative_url, version:)
  URI::Generic.build(host: host, port: port, scheme: scheme, path: "/api/v#{version}/#{relative_url}")
end
default_payload() click to toggle source
# File lib/ats/threat_grid/api.rb, line 48
def default_payload
  { api_key: api_key }
end