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
search()
click to toggle source
# File lib/ats/threat_grid/api.rb, line 36 def search ATS::ThreatGrid::Search.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