class BeaApi::Client

> BeaApi::Client

client#initialize method takes an api_key

Attributes

api_key[R]
datasets[R]

Public Class Methods

new(api_key) click to toggle source
# File lib/bea_api/client.rb, line 12
def initialize(api_key)
  fail ArgumentError, 'You must set an api_key.' unless api_key
  _validate_api_key(api_key)
end

Public Instance Methods

get_data(dataset, fields) click to toggle source
# File lib/bea_api/client.rb, line 32
def get_data(dataset, fields)
  fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset)
  fail ArgumentError, 'Invalid fields.' unless fields.class == Hash && !fields.empty?
  _method(dataset, 'GetData', fields)
end
get_datasets() click to toggle source
# File lib/bea_api/client.rb, line 17
def get_datasets()
  _method(nil, 'GetDataSetList', {})
end
get_parameter_values(dataset, parameter) click to toggle source
# File lib/bea_api/client.rb, line 26
def get_parameter_values(dataset, parameter)
  fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset)
  fail ArgumentError, 'Invalid parameter name.' unless parameter
  _method(dataset, 'GetParameterValues', {parametername: parameter})
end
get_parameters(dataset) click to toggle source
# File lib/bea_api/client.rb, line 21
def get_parameters(dataset)
  fail ArgumentError, 'Invalid dataset.' unless datasets.include?(dataset)
  _method(dataset, 'GetParameterList', {})
end

Protected Instance Methods

_method(dataset, method, options) click to toggle source
# File lib/bea_api/client.rb, line 44
def _method(dataset, method, options)
  fail ArgumentError, 'You must include a dataset.' unless dataset || method.downcase == 'getdatasetlist'
  options.merge!(userid: @api_key, datasetname: dataset, method: method.downcase)
  Request.find(options)
end
_validate_api_key(api_key) click to toggle source
# File lib/bea_api/client.rb, line 39
def _validate_api_key(api_key)
  @api_key = api_key
  response = get_datasets()
end