unirest test

James Peret 10 lat temu
rodzic
commit
dcd1dffb4d
3 zmienionych plików z 30 dodań i 0 usunięć
  1. 1 0
      Gemfile
  2. 15 0
      main.rb
  3. 14 0
      unirest_parser.rb

+ 1 - 0
Gemfile

@@ -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'

+ 15 - 0
main.rb

@@ -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

+ 14 - 0
unirest_parser.rb

@@ -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