Module: WebPurify::Request
- Defined in:
- lib/web_purify/request.rb
Overview
WebPurify::Request
WebPurify::Request handles the HTTP/HTTPS queries to the API endpoints, converting returned JSON into a usable object.
Defined Under Namespace
Classes: RequestError
Constant Summary collapse
- WRAPPER =
:rsp
Class Method Summary collapse
-
.get(uri, scheme) ⇒ String
Handles making the query according to http or https scheme.
-
.query(request_base, query_base, params) ⇒ Hash
Executes a query to the API endpoint.
-
.to_query(hash) ⇒ String
Converts a hash of key/values into a url-ready query string.
Class Method Details
.get(uri, scheme) ⇒ String
Handles making the query according to http or https scheme
68 69 70 71 |
# File 'lib/web_purify/request.rb', line 68 def self.get(uri, scheme) req = (scheme=='https') ? Net::HTTPS : Net::HTTP req.get uri end |
.query(request_base, query_base, params) ⇒ Hash
Executes a query to the API endpoint
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/web_purify/request.rb', line 45 def self.query(request_base, query_base, params) q = query_base.merge(params) uri_builder = (request_base[:scheme]=='https') ? URI::HTTPS : URI::HTTP uri = uri_builder.build( :host => request_base[:host], :path => request_base[:path], :query => WebPurify::Request.to_query(q) ) res = JSON.parse(WebPurify::Request.get(uri, request_base[:scheme]), :symbolize_names => true)[WRAPPER] if res[:err] err_attrs = res[:err][:@attributes] raise RequestError.new(err_attrs[:code], err_attrs[:msg]) else res end end |
.to_query(hash) ⇒ String
Converts a hash of key/values into a url-ready query string
34 35 36 |
# File 'lib/web_purify/request.rb', line 34 def self.to_query(hash) return URI.encode(hash.map{|k,v| "#{k}=#{v}"}.join("&")) end |