Class: ATS::ThreatGrid::API

Inherits:
Object
  • Object
show all
Defined in:
lib/ats/threat_grid/api.rb

Constant Summary collapse

HEADERS =
{
  'Content-Type' => 'application/json',
  'User-Agent' => "RubyGems/ATS #{ATS::VERSION}",
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api: HttpAPI.new(headers: HEADERS), profile: :default, configuration: ATS.configuration) ⇒ API

Returns a new instance of API.



13
14
15
16
17
18
19
20
21
# File 'lib/ats/threat_grid/api.rb', line 13

def initialize(
  api: HttpAPI.new(headers: HEADERS),
  profile: :default,
  configuration: ATS.configuration
)
  @http = api
  @profile = profile.to_sym
  @configuration = configuration
end

Instance Attribute Details

#configurationObject (readonly)

Returns the value of attribute configuration.



11
12
13
# File 'lib/ats/threat_grid/api.rb', line 11

def configuration
  @configuration
end

#httpObject (readonly)

Returns the value of attribute http.



11
12
13
# File 'lib/ats/threat_grid/api.rb', line 11

def http
  @http
end

#profileObject (readonly)

Returns the value of attribute profile.



11
12
13
# File 'lib/ats/threat_grid/api.rb', line 11

def profile
  @profile
end

Instance Method Details

#get(url, params: {}, version: 3) ⇒ Object



43
44
45
46
47
# File 'lib/ats/threat_grid/api.rb', line 43

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

#organizationsObject



31
32
33
# File 'lib/ats/threat_grid/api.rb', line 31

def organizations
  ATS::ThreatGrid::Organizations.new(self)
end

#samplesObject



35
36
37
# File 'lib/ats/threat_grid/api.rb', line 35

def samples
  ATS::ThreatGrid::Samples.new(self)
end

#searchObject



39
40
41
# File 'lib/ats/threat_grid/api.rb', line 39

def search
  ATS::ThreatGrid::Search.new(self)
end

#usersObject



27
28
29
# File 'lib/ats/threat_grid/api.rb', line 27

def users
  ATS::ThreatGrid::Users.new(self)
end

#whoamiObject



23
24
25
# File 'lib/ats/threat_grid/api.rb', line 23

def whoami
  get("session/whoami")
end