@@ -8,6 +8,7 @@ gem 'whois' |
||
8 | 8 |
gem 'haml' |
9 | 9 |
gem 'json' |
10 | 10 |
gem 'rack-cors', :require => 'rack/cors' |
11 |
+gem 'unirest' |
|
11 | 12 |
|
12 | 13 |
group :test, :development do |
13 | 14 |
gem 'pry' |
@@ -5,6 +5,7 @@ require 'json' |
||
5 | 5 |
require 'ostruct' |
6 | 6 |
require "sinatra/reloader" if development? |
7 | 7 |
require_relative 'json_parser' |
8 |
+require_relative 'unirest_parser' |
|
8 | 9 |
|
9 | 10 |
# ruby crimes |
10 | 11 |
class Whois::Record |
@@ -97,3 +98,17 @@ get '/lookup.json' do |
||
97 | 98 |
{ :error => @error }.to_json |
98 | 99 |
end |
99 | 100 |
end |
101 |
+ |
|
102 |
+get '/:url' do |
|
103 |
+ content_type 'application/json' |
|
104 |
+ response["Content-Type"] = "application/json" |
|
105 |
+ headers 'Access-Control-Allow-Origin' => '*', |
|
106 |
+ 'Access-Control-Allow-Methods' => ['OPTIONS', 'GET', 'POST'] |
|
107 |
+ begin |
|
108 |
+ #cache_for_day |
|
109 |
+ UnirestParser.parse(params[:url]) |
|
110 |
+ rescue Exception => e |
|
111 |
+ @error = e |
|
112 |
+ { :error => @error }.to_json |
|
113 |
+ end |
|
114 |
+end |
@@ -0,0 +1,14 @@ |
||
1 |
+require 'json' |
|
2 |
+require 'ostruct' |
|
3 |
+require 'unirest' |
|
4 |
+ |
|
5 |
+class UnirestParser |
|
6 |
+ |
|
7 |
+ def self.parse(url) |
|
8 |
+ response = Unirest.get "https://jsonwhois/api/v1/whois", |
|
9 |
+ headers:{ "Accept" => "application/json", "Authorization" => "Token token=4514034cfe7c71a79dbe105ab3e1c6b3" }, |
|
10 |
+ parameters:{ "domain" => url } |
|
11 |
+ return JSON.pretty_generate(response.body) |
|
12 |
+ end |
|
13 |
+ |
|
14 |
+end |