class Veeqo::Request
Public Class Methods
new(http_method, path, attributes = {})
click to toggle source
# File lib/veeqo/request.rb, line 8 def initialize(http_method, path, attributes = {}) @path = path @http_method = http_method @attributes = attributes end
Public Instance Methods
parse()
click to toggle source
# File lib/veeqo/request.rb, line 18 def parse Response.new(run).parse end
run()
click to toggle source
# File lib/veeqo/request.rb, line 14 def run valid_response || raise_response_error end
Private Instance Methods
build_net_http_request()
click to toggle source
# File lib/veeqo/request.rb, line 54 def build_net_http_request request = constantize_net_http_class.new(uri) set_request_headers!(request) set_request_body!(request) request end
constantize_net_http_class()
click to toggle source
# File lib/veeqo/request.rb, line 68 def constantize_net_http_class Object.const_get("Net::HTTP::#{@http_method.to_s.capitalize}") end
net_http_options()
click to toggle source
# File lib/veeqo/request.rb, line 50 def net_http_options [uri.host, uri.port, use_ssl: true] end
raise_response_error()
click to toggle source
# File lib/veeqo/request.rb, line 30 def raise_response_error raise response_error end
response()
click to toggle source
# File lib/veeqo/request.rb, line 38 def response @response ||= send_http_request rescue *server_errors => error @response ||= error end
response_error()
click to toggle source
# File lib/veeqo/request.rb, line 87 def response_error Veeqo::Errors.error_klass_for(response) end
send_http_request()
click to toggle source
# File lib/veeqo/request.rb, line 44 def send_http_request Net::HTTP.start(*net_http_options) do |http| http.request(build_net_http_request) end end
server_errors()
click to toggle source
# File lib/veeqo/request.rb, line 83 def server_errors Veeqo::Errors.server_errors end
set_request_body!(request)
click to toggle source
# File lib/veeqo/request.rb, line 72 def set_request_body!(request) request.body = @attributes.to_json end
set_request_headers!(request)
click to toggle source
# File lib/veeqo/request.rb, line 76 def set_request_headers!(request) request.initialize_http_header( "Content-Type" => "application/json", "x-api-key" => Veeqo.configuration.api_key, ) end
uri()
click to toggle source
# File lib/veeqo/request.rb, line 61 def uri @uri ||= URI::HTTPS.build( host: Veeqo.configuration.api_host, path: ["", @path].join("/").squeeze("/"), ) end
valid_response()
click to toggle source
# File lib/veeqo/request.rb, line 24 def valid_response if valid_response? response end end
valid_response?()
click to toggle source
# File lib/veeqo/request.rb, line 34 def valid_response? response.is_a?(Net::HTTPSuccess) end