module Heroku::Helpers::Addons::API

Constants

VERSION

Public Instance Methods

get_addon(identifier, options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 51
def get_addon(identifier, options = {})
  get_addon!(identifier, options)
rescue Heroku::API::Errors::NotFound
end
get_addon!(identifier, options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 44
def get_addon!(identifier, options = {})
  request(
    :headers => { 'Accept-Expansion' => 'plan' },
    :path    => "#{addons_path(options)}/#{identifier}"
  )
end
get_addons(options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 37
def get_addons(options = {})
  request_list(
    :headers => { 'Accept-Expansion' => 'plan' },
    :path    => addons_path(options)
  )
end
get_attachment(identifier, options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 32
def get_attachment(identifier, options = {})
  get_attachment!(identifier, options)
rescue Heroku::API::Errors::NotFound
end
get_attachment!(identifier, options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 28
def get_attachment!(identifier, options = {})
  request(:path => "#{attachments_path(options)}/#{identifier}")
end
get_attachments(options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 24
def get_attachments(options = {})
  request_list(:path => attachments_path(options))
end
get_plans(options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 69
def get_plans(options = {})
  path = options[:service] ?
    "/addon-services/#{options[:service]}/plans" :
    "/plans"

  request_list(:path => path)
end
get_service(service) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 60
def get_service(service)
  get_service!
rescue Heroku::API::Errors::NotFound
end
get_service!(service) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 56
def get_service!(service)
  request(:path => "/addon-services/#{service}")
end
get_services() click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 65
def get_services
  request_list(:path => "/addon-services")
end
request(options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 6
def request(options = {})
  defaults = {
    :expects => 200,
    :headers => {},
    :method  => :get
  }
  options = defaults.merge(options)
  options[:headers]["Accept"] ||= "application/vnd.heroku+json; version=#{VERSION}"
  api.request(options).body
end
request_list(options = {}) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 17
def request_list(options = {})
  options = options.dup
  options[:expects] = [200, 206, *options[:expects]].uniq

  request(options)
end

Private Instance Methods

addons_path(options) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 79
def addons_path(options)
  if app = options[:app]
    "/apps/#{app}/addons"
  else
    "/addons"
  end
end
attachments_path(options) click to toggle source
# File lib/heroku/helpers/addons/api.rb, line 87
def attachments_path(options)
  if resource = options[:resource]
    "/addons/#{resource}/addon-attachments"
  elsif app = options[:app]
    "/apps/#{app}/addon-attachments"
  else
    "/addon-attachments"
  end
end