Class: Mihari::Clients::BinaryEdge
- Defined in:
- lib/mihari/clients/binaryedge.rb
Overview
BinaryEdge API client
Instance Attribute Summary
Attributes inherited from Base
#base_url, #headers, #pagination_interval, #timeout
Instance Method Summary collapse
-
#initialize(base_url = "https://api.binaryedge.io", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ BinaryEdge
constructor
A new instance of BinaryEdge.
- #search(query, page: 1, only_ips: nil) ⇒ Mihari::Structs::BinaryEdge::Response
- #search_with_pagination(query, only_ips: nil, pagination_limit: Mihari.config.pagination_limit) ⇒ Enumerable<Mihari::Structs::BinaryEdge::Response>
Constructor Details
#initialize(base_url = "https://api.binaryedge.io", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ BinaryEdge
Returns a new instance of BinaryEdge.
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/mihari/clients/binaryedge.rb', line 16 def initialize( base_url = "https://api.binaryedge.io", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil ) headers["x-key"] = api_key super(base_url, headers:, timeout:, pagination_interval:) end |
Instance Method Details
#search(query, page: 1, only_ips: nil) ⇒ Mihari::Structs::BinaryEdge::Response
35 36 37 38 39 40 41 42 |
# File 'lib/mihari/clients/binaryedge.rb', line 35 def search(query, page: 1, only_ips: nil) params = { query:, page:, only_ips: }.compact Structs::BinaryEdge::Response.from_dynamic! get_json("/v2/query/search", params:) end |
#search_with_pagination(query, only_ips: nil, pagination_limit: Mihari.config.pagination_limit) ⇒ Enumerable<Mihari::Structs::BinaryEdge::Response>
51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/mihari/clients/binaryedge.rb', line 51 def search_with_pagination(query, only_ips: nil, pagination_limit: Mihari.config.pagination_limit) Enumerator.new do |y| (1..pagination_limit).each do |page| res = search(query, page:, only_ips:) y.yield res break if res.events.length < res.pagesize sleep_pagination_interval end end end |