lib/securitytrails/clients/history.rb in securitytrails-0.2.0 vs lib/securitytrails/clients/history.rb in securitytrails-1.0.0
- old
+ new
@@ -1,31 +1,61 @@
# frozen_string_literal: true
module SecurityTrails
module Clients
class History < Client
- def get_dns_history(hostname, type, page = 1)
+ #
+ # Lists out specific historical information about the given hostname parameter
+ #
+ # @see https://docs.securitytrails.com/reference#dns-history-by-record-type
+ #
+ # @param [String] hostname
+ # @param [String] type allowed values: a, aaaa, mx, ns, soa or txt
+ # @param [Integer] page The page of the returned results
+ #
+ # @return [Hash]
+ #
+ def get_dns_history(hostname, type:, page: 1)
raise ArgumentError, "The API currently supports a, aaaa, mx, ns, soa and txt records." unless valid_type?(type)
get("/history/#{hostname}/dns/#{type.downcase}", page: page) { |json| json }
end
- def get_all_dns_history(hostname, type)
- first_page = get_dns_history(hostname, type, 1)
+ #
+ # Lists out specific historical information about the given hostname parameter with auto paging
+ #
+ # @see https://docs.securitytrails.com/reference#dns-history-by-record-type
+ #
+ # @param [String] hostname
+ # @param [String] type allowed values: a, aaaa, mx, ns, soa or txt
+ #
+ # @return [Hash]
+ #
+ def get_all_dns_history(hostname, type:)
+ first_page = get_dns_history(hostname, type: type, page: 1)
pages = first_page["pages"].to_i
records = []
records << first_page["records"]
(2..pages).each do |page_idx|
- next_page = get_dns_history(hostname, type, page_idx)
+ next_page = get_dns_history(hostname, type: type, page: page_idx)
records << next_page["records"]
end
first_page["records"] = records.flatten
first_page
end
+ #
+ # Returns historical WHOIS information about the given domain
+ #
+ # @see https://docs.securitytrails.com/reference#whois-history-by-domain
+ #
+ # @param [String] hostname
+ #
+ # @return [Hash]
+ #
def get_whois_history(hostname)
get("/history/#{hostname}/whois/") { |json| json }
end
private