class GreenButtonData::Configuration

Attributes

application_information_path[RW]
authorization_path[RW]
base_url[RW]
bulk_path[RW]
interval_block_path[RW]
local_time_parameters_path[RW]
meter_reading_path[RW]
reading_type_path[RW]
retail_customer_path[RW]
subscription_path[RW]
usage_point_path[RW]
usage_summary_path[RW]

Public Instance Methods

application_information_url(id = nil) click to toggle source
# File lib/green-button-data/configuration.rb, line 18
def application_information_url(id = nil)
  return build_url @application_information_path, id
end
application_information_url=(url) click to toggle source
# File lib/green-button-data/configuration.rb, line 22
def application_information_url=(url)
  uri = URI.parse url
  @base_url = "#{uri.scheme}://#{uri.host}"
  @application_information_path = uri.path
end
authorization_url(id = nil) click to toggle source
# File lib/green-button-data/configuration.rb, line 28
def authorization_url(id = nil)
  return build_url @authorization_path, id
end
authorization_url=(url) click to toggle source
# File lib/green-button-data/configuration.rb, line 32
def authorization_url=(url)
  uri = URI.parse url
  @base_url = "#{uri.scheme}://#{uri.host}"
  @authorization_path = uri.path
end
bulk_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 141
def bulk_url(kwargs = {})
  subscription_id = kwargs[:subscription_id]
  bulk_file_id = kwargs[:bulk_file_id]

  if subscription_id && bulk_file_id
    bulk_url = build_url(@bulk_path)
    return "#{bulk_url}/#{subscription_id}/#{bulk_file_id}"
  else
    raise ArgumentError.new "Missing required arguments: subscription_id or bulk_file_id"
  end
end
interval_block_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 38
def interval_block_url(kwargs = {})
  subscription_id = kwargs[:subscription_id]
  usage_point_id = kwargs[:usage_point_id]
  meter_reading_id = kwargs[:meter_reading_id]
  interval_block_id = kwargs[:interval_block_id]

  uri = if subscription_id && usage_point_id && meter_reading_id
    meter_reading_uri = meter_reading_url(
      subscription_id: subscription_id,
      usage_point_id: usage_point_id,
      meter_reading_id: meter_reading_id
    )

    URI.join meter_reading_uri, @interval_block_path
  else
    URI.join @base_url, @interval_block_path
  end

  uri = URI.join uri, "#{interval_block_id}/" if interval_block_id

  return uri.to_s
end
local_time_parameters_url(id = nil) click to toggle source
# File lib/green-button-data/configuration.rb, line 61
def local_time_parameters_url(id = nil)
  return build_url @local_time_parameters_path, id
end
meter_reading_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 65
def meter_reading_url(kwargs = {})
  subscription_id = kwargs[:subscription_id]
  usage_point_id = kwargs[:usage_point_id]
  meter_reading_id = kwargs[:meter_reading_id]

  uri = if subscription_id && usage_point_id
    usage_point_uri = usage_point_url(
      subscription_id: subscription_id,
      usage_point_id: usage_point_id
    )

    URI.join usage_point_uri, @meter_reading_path
  else
    URI.join @base_url, @meter_reading_path
  end

  uri = URI.join uri, "#{meter_reading_id}/" if meter_reading_id

  return uri.to_s
end
reading_type_url(id = nil) click to toggle source
# File lib/green-button-data/configuration.rb, line 86
def reading_type_url(id = nil)
  return build_url @reading_type_path, id
end
retail_customer_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 130
def retail_customer_url(kwargs = {})
  retail_customer_id = kwargs[:subscription_id]

  if retail_customer_id
    retail_customer_url = build_url(@retail_customer_path)
    return "#{retail_customer_url}/#{retail_customer_id}"
  else
    raise ArgumentError.new "Missing required arguments: subscription_id"
  end
end
subscription_url(id) click to toggle source
# File lib/green-button-data/configuration.rb, line 90
def subscription_url(id)
  return build_url @subscription_path, id
end
usage_point_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 94
def usage_point_url(kwargs = {})
  subscription_id = kwargs[:subscription_id]
  usage_point_id = kwargs[:usage_point_id]

  uri = if subscription_id
    subscription_uri = subscription_url subscription_id

    URI.join subscription_uri, @usage_point_path
  else
    URI.join @base_url, @usage_point_path
  end

  uri = URI.join uri, "#{usage_point_id}/" if usage_point_id

  return uri.to_s
end
usage_summary_url(kwargs = {}) click to toggle source
# File lib/green-button-data/configuration.rb, line 111
def usage_summary_url(kwargs = {})
  subscription_id = kwargs[:subscription_id]
  usage_point_id = kwargs[:usage_point_id]

  if subscription_id && usage_point_id
    usage_point_uri = usage_point_url subscription_id: subscription_id,
                                      usage_point_id: usage_point_id

    return URI.join(usage_point_uri, @usage_summary_path).to_s
  elsif subscription_id
    raise ArgumentError.new "Missing required argument: usage_point_id"
  elsif usage_point_id
    raise ArgumentError.new "Missing required argument: subscription_id"
  else
    raise ArgumentError.new "Missing required arguments: subscription_id," +
                            " usage_point_id"
  end
end

Private Instance Methods

build_url(path, id = nil) click to toggle source
# File lib/green-button-data/configuration.rb, line 155
def build_url(path, id = nil)
  uri = URI.join @base_url, path
  uri = URI.join uri, "#{id}/" if id

  return uri.to_s
end