module Nucleus::Adapters::V1::Heroku::Vars

Public Instance Methods

create_env_var(application_id, env_var) click to toggle source

@see Stub#create_env_var

# File lib/nucleus/adapters/v1/heroku/vars.rb, line 26
def create_env_var(application_id, env_var)
  raise Errors::SemanticAdapterRequestError,
        "Env. var key '#{env_var[:key]}' already taken" if env_var?(application_id, env_var[:key])

  request_body = { env_var[:key] => env_var[:value] }
  all_vars = patch("/apps/#{application_id}/config-vars", body: request_body).body
  { id: env_var[:key], key: env_var[:key], value: all_vars[env_var[:key].to_sym] }
end
delete_env_var(application_id, env_var_key) click to toggle source

@see Stub#delete_env_var

# File lib/nucleus/adapters/v1/heroku/vars.rb, line 46
def delete_env_var(application_id, env_var_key)
  raise Errors::AdapterResourceNotFoundError,
        "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key)

  # vars can be deleted by setting them to null / nil
  request_body = { env_var_key => nil }
  patch("/apps/#{application_id}/config-vars", body: request_body).body
end
env_var(application_id, env_var_key) click to toggle source

@see Stub#env_var

# File lib/nucleus/adapters/v1/heroku/vars.rb, line 17
def env_var(application_id, env_var_key)
  all_vars = get("/apps/#{application_id}/config-vars").body
  raise Errors::AdapterResourceNotFoundError,
        "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key, all_vars)

  { id: env_var_key, key: env_var_key, value: all_vars[env_var_key.to_sym] }
end
env_vars(application_id) click to toggle source

@see Stub#env_vars

# File lib/nucleus/adapters/v1/heroku/vars.rb, line 7
def env_vars(application_id)
  all_vars = get("/apps/#{application_id}/config-vars").body
  formatted_vars = []
  all_vars.each do |key, value|
    formatted_vars.push(id: key, key: key, value: value)
  end
  formatted_vars
end
update_env_var(application_id, env_var_key, env_var) click to toggle source

@see Stub#update_env_var

# File lib/nucleus/adapters/v1/heroku/vars.rb, line 36
def update_env_var(application_id, env_var_key, env_var)
  raise Errors::AdapterResourceNotFoundError,
        "Env. var key '#{env_var_key}' does not exist" unless env_var?(application_id, env_var_key)

  request_body = { env_var_key => env_var[:value] }
  updated_vars = patch("/apps/#{application_id}/config-vars", body: request_body).body
  { id: env_var_key, key: env_var_key, value: updated_vars[env_var_key.to_sym] }
end

Private Instance Methods

env_var?(application_id, env_var_key, all_vars = nil) click to toggle source
# File lib/nucleus/adapters/v1/heroku/vars.rb, line 57
def env_var?(application_id, env_var_key, all_vars = nil)
  all_vars = get("/apps/#{application_id}/config-vars").body if all_vars.nil?
  all_vars.key? env_var_key.to_sym
end