class Stride::BaseRequest

Public Instance Methods

json() click to toggle source
# File lib/stride/base_request.rb, line 3
def json
  if result.code =~ /20\d/
    JSON.parse(result.body)
  else
    raise ApiFailure.new(error_message)
  end
end

Private Instance Methods

error_message() click to toggle source
# File lib/stride/base_request.rb, line 19
def error_message
  "Got a #{result.code} from Stride API: #{result.body}"
end
headers() click to toggle source
# File lib/stride/base_request.rb, line 44
def headers
  {
    'content-type' => 'application/json'
  }
end
params() click to toggle source
# File lib/stride/base_request.rb, line 40
def params
  {}
end
request() click to toggle source
# File lib/stride/base_request.rb, line 23
def request
  request_class.new(uri).tap do |req|
    req.body = params.to_json if params.any?
    headers.each do |key, value|
      req[key] = value
    end
  end
end
request_class() click to toggle source
# File lib/stride/base_request.rb, line 32
def request_class
  Net::HTTP::Post
end
result() click to toggle source
# File lib/stride/base_request.rb, line 13
def result
  @result ||= Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
    http.request(request)
  end
end
uri() click to toggle source
# File lib/stride/base_request.rb, line 36
def uri
  raise 'uri must be implemented per request'
end