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