class Seriline::Request
Public Class Methods
get(uri, body = {})
click to toggle source
# File lib/seriline/request.rb, line 8 def get(uri, body = {}) Request.new(uri).execute(body) end
new(uri, method: "GET")
click to toggle source
# File lib/seriline/request.rb, line 18 def initialize(uri, method: "GET") @method = method @uri = URI(uri) end
post(uri, body = {})
click to toggle source
# File lib/seriline/request.rb, line 12 def post(uri, body = {}) Request.new(uri, method: "POST") .execute(body) end
Public Instance Methods
execute(body = {})
click to toggle source
# File lib/seriline/request.rb, line 23 def execute(body = {}) response = http.request(request_object(body)) evaluate_response(response) return parse_response(response) end
Private Instance Methods
evaluate_response(response)
click to toggle source
# File lib/seriline/request.rb, line 39 def evaluate_response(response) response.value rescue raise Seriline::RequestFailedError.new(response) end
http()
click to toggle source
# File lib/seriline/request.rb, line 31 def http @http ||= Net::HTTP.new(@uri.host, @uri.port) .tap do |http_instance| http_instance.use_ssl = true http_instance.verify_mode = OpenSSL::SSL::VERIFY_PEER end end
parse_response(response)
click to toggle source
# File lib/seriline/request.rb, line 45 def parse_response(response) return {} if response.body.empty? JSON.parse(response.body, {quirks_mode: true}) end
request_object(body)
click to toggle source
# File lib/seriline/request.rb, line 50 def request_object(body) @request_object ||= case @method when "GET" @uri.query = URI.encode_www_form(body) Net::HTTP::Get.new(@uri) when "POST" Net::HTTP::Post.new(@uri).tap do |req| req.content_type = "application/json" req.body = body.to_json end end end