Module: Federails::Utils::JsonRequest
- Defined in:
- lib/federails/utils/json_request.rb
Overview
Simple wrapper to make requests expecting JSON
Defined Under Namespace
Classes: UnhandledResponseStatus
Constant Summary collapse
- BASE_HEADERS =
{ 'Content-Type' => 'application/json', 'Accept' => 'application/json', }.freeze
Class Method Summary collapse
-
.get_json(url, params: {}, headers: {}, follow_redirects: false, expected_status: 200) ⇒ Object
Makes a GET request and returns a
Hash
from the parsed body.
Class Method Details
.get_json(url, params: {}, headers: {}, follow_redirects: false, expected_status: 200) ⇒ Object
Makes a GET request and returns a Hash
from the parsed body
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/federails/utils/json_request.rb', line 26 def self.get_json(url, params: {}, headers: {}, follow_redirects: false, expected_status: 200) headers = BASE_HEADERS.merge headers connection = Faraday.new url: url, params: params, headers: headers do |faraday| faraday.response :follow_redirects if follow_redirects faraday.adapter Faraday.default_adapter end response = connection.get raise UnhandledResponseStatus, "Unhandled status code #{response.status} for GET #{url}" if expected_status && response.status != expected_status JSON.parse(response.body) end |