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