class OpenParliament::RequestService
Constants
- VALID_PARAMS
Public Class Methods
new(klass)
click to toggle source
# File lib/open_parliament/request_service.rb, line 6 def initialize(klass) @klass = klass end
Public Instance Methods
get(params = {})
click to toggle source
# File lib/open_parliament/request_service.rb, line 10 def get(params = {}) json = make_request(url: @klass.resource_url, method: :get, params: params) objects = json["objects"] objects.map { |object_json| @klass.new(object_json) } end
Private Instance Methods
build_headers()
click to toggle source
# File lib/open_parliament/request_service.rb, line 31 def build_headers { "API-Version" => "v1", accept: :json, params: build_params, } end
build_params()
click to toggle source
# File lib/open_parliament/request_service.rb, line 39 def build_params filtered_params = @params.select { |k| (VALID_PARAMS + @klass.valid_filters).include?(k) } default_params.merge(filtered_params) end
default_params()
click to toggle source
# File lib/open_parliament/request_service.rb, line 44 def default_params { limit: 20, offset: 0, } end
make_request(url:, method:, params: {})
click to toggle source
# File lib/open_parliament/request_service.rb, line 19 def make_request(url:, method:, params: {}) @params = params full_url = "#{OpenParliament::API_URL}#{url}" resp = RestClient::Request.execute(method: method, url: full_url, timeout: 10, headers: build_headers, ) JSON.parse(resp) end