Sha256: 6a5d6a7adb6dff97c37d98a4079ddebd707becb53d08cc2683723a2eca1d17e8
Contents?: true
Size: 1.29 KB
Versions: 2
Compression:
Stored size: 1.29 KB
Contents
require 'net/http' require 'json' require 'nokogiri' require 'open-uri' class CongressV3::Request BASE_URI = 'https://congress.api.sunlightfoundation.com' attr_accessor :route, :params def initialize(route, params) if !CongressV3::Config.api_key || CongressV3::Config.api_key.empty? raise Exception.new("API Key MUST be set!") end defaults = { page: 1, apikey: CongressV3::Config.api_key } @route = route @params = defaults.merge(params) end def self.legislators(params={}) response = new("/legislators", params).request response.results.map! do |legislator| CongressV3::Legislator.new(legislator) end response end def self.bills(params) response = new("/bills", params).request response.results.map! do |bill| CongressV3::Bill.new(bill) end response end def self.bill_search(params) response = new("/bills/search", params).request response.results.map! do |bill| CongressV3::Bill.new(bill) end response end def self.bill_text(uri) html = Nokogiri::HTML(open(uri)) html.css('body pre').text end def request uri = URI(BASE_URI + route) uri.query = URI.encode_www_form(params) response = Net::HTTP.get(uri) CongressV3::Response.new(JSON.parse(response)) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
congress_v3-0.1.1 | lib/congress_v3/request.rb |
congress_v3-0.1.0 | lib/congress_v3/request.rb |