Sha256: d705ee494c268429df384bf4db28339fab29134893e722ab597c5d1490f94388

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

require "domain_finder/version"
require 'json'
require 'net/http'

module DomainFinder

  URL = 'https://domai.nr/api/json/search'

  class << self
    def search(domains)

      results = []

      domains.each do |domain|
        uri = URI(URL)
        params = { q: domain }
        uri.query = URI.encode_www_form(params)
        res = Net::HTTP.get_response(uri)

        results << "** #{domain} **" if domains.size > 1

        if res.is_a?(Net::HTTPSuccess)
          results << parse_results(res.body)
        elsif res.is_a?(Net::HTTPBadRequest)
          results << "Registrar doesn't like your request. Try a different one."
        else
          raise "Error #{res.code} while accessing domain registrar"
        end

      end

      results
    end

    private

    def parse_results(results)
      json = JSON.parse(results)
      json['results'].map do |result|
        case result['availability']
        when 'available'
          "○  #{result['domain']}"
        when 'maybe'
          "?  #{result['domain']}"
        else
          "✘  #{result['domain']}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
domain_finder-0.0.1 lib/domain_finder.rb