Class: Mihari::Clients::Censys::V3
- Defined in:
- lib/mihari/clients/censys.rb
Instance Attribute Summary
Attributes inherited from Base
#base_url, #headers, #pagination_interval, #timeout
Instance Method Summary collapse
-
#initialize(base_url = "https://api.platform.censys.io", pat:, organization_id:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ V3
constructor
A new instance of V3.
- #search(query, page_size: nil, page_token: nil) ⇒ Object
- #search_with_pagination(query, page_size: nil, pagination_limit: Mihari.config.pagination_limit) ⇒ Object
Constructor Details
#initialize(base_url = "https://api.platform.censys.io", pat:, organization_id:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) ⇒ V3
Returns a new instance of V3.
84 85 86 87 88 89 90 91 92 93 |
# File 'lib/mihari/clients/censys.rb', line 84 def initialize(base_url = "https://api.platform.censys.io", pat:, organization_id:, headers: {}, pagination_interval: Mihari.config.pagination_interval, timeout: nil) raise(ArgumentError, "pat is required") if pat.nil? raise(ArgumentError, "organization_id is required") if organization_id.nil? headers["Authorization"] = "Bearer #{pat}" headers["Accept"] = "application/vnd.censys.api.v3.host.v1+json" headers["X-Organization-ID"] = organization_id super(base_url, headers: headers, pagination_interval: pagination_interval, timeout: timeout) end |
Instance Method Details
#search(query, page_size: nil, page_token: nil) ⇒ Object
95 96 97 98 |
# File 'lib/mihari/clients/censys.rb', line 95 def search(query, page_size: nil, page_token: nil) json = {query: query, page_size:, page_token:}.compact Structs::Censys::V3::Response.from_dynamic! post_json("/v3/global/search/query", json:) end |
#search_with_pagination(query, page_size: nil, pagination_limit: Mihari.config.pagination_limit) ⇒ Object
100 101 102 103 104 105 106 107 108 109 110 111 |
# File 'lib/mihari/clients/censys.rb', line 100 def search_with_pagination(query, page_size: nil, pagination_limit: Mihari.config.pagination_limit) page_token = nil Enumerator.new do |y| pagination_limit.times do res = search(query, page_size:, page_token:) y.yield res page_token = res.result&.next_page_token break if page_token.nil? || page_token.empty? sleep_pagination_interval end end end |