diff --git a/README.md b/README.md index 2c6e72f..addd295 100644 --- a/README.md +++ b/README.md @@ -82,7 +82,7 @@ result.exist result.sources ``` -## Generate API +## Generate API Guesses the most likely email of a person from his first name, his last name and a domain name. ```ruby email_hunter.generate('gmail.com', 'Davide', 'Santangelo') @@ -93,6 +93,18 @@ email_hunter.generate('gmail.com', 'Davide', 'Santangelo') result.status result.email result.score + +## Count API +Returns the number of email addresses found for a domain. +_*This is a free API call*_ +```ruby +email_hunter.count('gmail.com') +``` + +## Accessing count response +```ruby +result.status +result.count ``` ## License diff --git a/lib/email_hunter/api.rb b/lib/email_hunter/api.rb index 47848b0..8b17635 100644 --- a/lib/email_hunter/api.rb +++ b/lib/email_hunter/api.rb @@ -3,6 +3,7 @@ require File.expand_path(File.join(File.dirname(__FILE__), 'search')) require File.expand_path(File.join(File.dirname(__FILE__), 'generate')) require File.expand_path(File.join(File.dirname(__FILE__), 'verify')) +require File.expand_path(File.join(File.dirname(__FILE__), 'count')) module EmailHunter class Api @@ -32,8 +33,8 @@ def generate(domain, first_name, last_name) EmailHunter::Generate.new(domain, first_name, last_name, self.key).hunt end - def verify(email) - EmailHunter::Verify.new(email, self.key).hunt + def count(domain) + EmailHunter::Count.new(domain).hunt end end end diff --git a/lib/email_hunter/count.rb b/lib/email_hunter/count.rb new file mode 100644 index 0000000..e953054 --- /dev/null +++ b/lib/email_hunter/count.rb @@ -0,0 +1,27 @@ +require 'faraday' +require 'json' + +API_COUNT_URL = 'https://api.emailhunter.co/v1/email-count?' + +module EmailHunter + class Count + attr_reader :status, :count + + def initialize(domain) + @domain = domain + end + + def hunt + response = apiresponse + Struct.new(*response.keys).new(*response.values) unless response.empty? + end + + private + + def apiresponse + url = URI.parse(URI.encode("#{API_COUNT_URL}domain=#{@domain}")) + response = Faraday.new(url).get + response.success? ? JSON.parse(response.body, {symbolize_names: true}) : [] + end + end +end