class Interage::Request::Start
Attributes
headers[R]
klass[R]
params[R]
response[R]
ssl[R]
ssl?[R]
uri[R]
Public Class Methods
call(*args)
click to toggle source
# File lib/interage/request/start.rb, line 8 def self.call(*args) new(*args).perform end
new(klass, uri, params = {}, headers = {}, ssl = false)
click to toggle source
# File lib/interage/request/start.rb, line 12 def initialize(klass, uri, params = {}, headers = {}, ssl = false) @klass = klass @uri = URI(uri.to_s) @params = params @headers = headers @ssl = ssl end
Public Instance Methods
body()
click to toggle source
# File lib/interage/request/start.rb, line 30 def body @body ||= JSON.parse(response_body, symbolize_names: true) rescue JSON::ParserError {} end
code()
click to toggle source
# File lib/interage/request/start.rb, line 36 def code response_code.to_i end
errors()
click to toggle source
# File lib/interage/request/start.rb, line 44 def errors body[:errors] || {} end
perform()
click to toggle source
# File lib/interage/request/start.rb, line 20 def perform @response = Net::HTTP.start(uri.host, uri.port) do |http| http.use_ssl = true if ssl? http.request(request) end self end
success?()
click to toggle source
# File lib/interage/request/start.rb, line 40 def success? response_message == 'OK' && errors.blank? end
Protected Instance Methods
request()
click to toggle source
# File lib/interage/request/start.rb, line 57 def request @request ||= begin request = klass.new(uri) request.body = params.to_json request.content_type = 'application/json' headers.map { |key, value| request[key] = value } request end end