Class: Mihari::Clients::Yeti

Inherits:
Base
  • Object
show all
Defined in:
lib/mihari/clients/yeti.rb

Overview

Yeti API client

Instance Attribute Summary

Attributes inherited from Base

#base_url, #headers, #pagination_interval, #timeout

Instance Method Summary collapse

Constructor Details

#initialize(base_url, api_key:, headers: {}, timeout: nil) ⇒ Yeti

Returns a new instance of Yeti.

Parameters:

  • base_url (String)
  • api_key (String, nil)
  • headers (Hash) (defaults to: {})
  • timeout (Integer, nil) (defaults to: nil)

Raises:

  • (ArgumentError)


15
16
17
18
19
20
# File 'lib/mihari/clients/yeti.rb', line 15

def initialize(base_url, api_key:, headers: {}, timeout: nil)
  raise(ArgumentError, "api_key is required") unless api_key

  headers["x-yeti-apikey"] = api_key
  super(base_url, headers:, timeout:)
end

Instance Method Details

#create_observables(json) ⇒ Hash

Parameters:

  • json (Hash)

Returns:

  • (Hash)


32
33
34
35
# File 'lib/mihari/clients/yeti.rb', line 32

def create_observables(json)
  token = get_token
  post_json("/api/v2/observables/bulk", json:, headers: {authorization: "Bearer #{token}"})
end

#get_tokenObject



22
23
24
25
# File 'lib/mihari/clients/yeti.rb', line 22

def get_token
  res = post_json("/api/v2/auth/api-token")
  res["access_token"]
end