From 4d33de81546ce449137ea3a5e322e082c4d75e01 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Tue, 30 Aug 2016 11:17:20 -0400 Subject: [PATCH] Attempt to make an authenticated request to bls ??????????????????????????????????????????????? --- cpi_fetcher.rb | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cpi_fetcher.rb b/cpi_fetcher.rb index a612b99..eadafca 100644 --- a/cpi_fetcher.rb +++ b/cpi_fetcher.rb @@ -6,10 +6,11 @@ require 'json' class CPIFetcher DEFAULT_CPI_SERIES_URL = 'http://api.bls.gov/publicAPI/v2/timeseries/data/CUUSA210SA0'.freeze - attr_reader :cpi_series_url + attr_reader :url, :bls_token def initialize - @cpi_series_url = URI(ENV['CPI_SERIES_URL'] || DEFAULT_CPI_SERIES_URL) + @url = URI(ENV['CPI_SERIES_URL'] || DEFAULT_CPI_SERIES_URL) + @bls_token = ENV.fetch('BLS_TOKEN') end def cpi @@ -25,7 +26,16 @@ class CPIFetcher private def fetch_raw_response - JSON.parse(Net::HTTP.get_response(cpi_series_url).body) + res = Net::HTTP.start(url.hostname, url.port) do |http| + http.request(build_request) + end + JSON.parse(res.body) + end + + def build_request + req = Net::HTTP::Get.new(url) + req['Authorization'] = "token #{bls_token}" + req end end