Class: Mihari::Clients::HunterHow
- Defined in:
- lib/mihari/clients/hunterhow.rb
Overview
hunter.how API client
Constant Summary collapse
- PAGE_SIZE =
100
Instance Attribute Summary collapse
- #api_key ⇒ String readonly
Attributes inherited from Base
#base_url, #headers, #pagination_interval, #timeout
Instance Method Summary collapse
-
#initialize(base_url = "https://api.hunter.how", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ HunterHow
constructor
A new instance of HunterHow.
- #search(query, start_time:, end_time:, page: 1, page_size: PAGE_SIZE) ⇒ Mihari::Structs::HunterHow::Response
- #search_with_pagination(query, start_time:, end_time:, page_size: PAGE_SIZE, pagination_limit: Mihari.config.pagination_limit) ⇒ Enumerable<Mihari::Structs::HunterHow::Response>
Constructor Details
#initialize(base_url = "https://api.hunter.how", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ HunterHow
Returns a new instance of HunterHow.
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/mihari/clients/hunterhow.rb', line 23 def initialize( base_url = "https://api.hunter.how", api_key:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil ) raise(ArgumentError, "api_key is required") unless api_key super(base_url, headers: headers, pagination_interval: pagination_interval, timeout: timeout) @api_key = api_key end |
Instance Attribute Details
#api_key ⇒ String (readonly)
14 15 16 |
# File 'lib/mihari/clients/hunterhow.rb', line 14 def api_key @api_key end |
Instance Method Details
#search(query, start_time:, end_time:, page: 1, page_size: PAGE_SIZE) ⇒ Mihari::Structs::HunterHow::Response
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mihari/clients/hunterhow.rb', line 46 def search(query, start_time:, end_time:, page: 1, page_size: PAGE_SIZE) params = { query: Base64.urlsafe_encode64(query), page: page, page_size: page_size, start_time: start_time, end_time: end_time, "api-key": api_key }.compact Structs::HunterHow::Response.from_dynamic! get_json("/search", params: params) end |
#search_with_pagination(query, start_time:, end_time:, page_size: PAGE_SIZE, pagination_limit: Mihari.config.pagination_limit) ⇒ Enumerable<Mihari::Structs::HunterHow::Response>
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/mihari/clients/hunterhow.rb', line 67 def search_with_pagination( query, start_time:, end_time:, page_size: PAGE_SIZE, pagination_limit: Mihari.config.pagination_limit ) Enumerator.new do |y| (1..pagination_limit).each do |page| res = search( query, start_time: start_time, end_time: end_time, page: page, page_size: page_size ) y.yield res break if res.data.list.length < page_size sleep_pagination_interval end end end |