class Magellan::Cli::Resources::ClientVersion

Public Instance Methods

create(version) click to toggle source
# File lib/magellan/cli/resources/client_version.rb, line 19
def create(version)
  project = load_selection!(Project)
  stage = load_selection!(Stage)
  attrs = {
    "project_id" => project["id"],
    "stage_title_id" => stage["id"],
    "version" => version,
  }
  if d = options[:domain]
    attrs["domain"] = d
  end
  params = { parameter_name => attrs }
  post_json("/admin/#{resource_key}/new.js", params)
  # TODO implement select method
  # select(version)
end
delete(version) click to toggle source
Calls superclass method Magellan::Cli::Base#delete
# File lib/magellan/cli/resources/client_version.rb, line 62
def delete(version)
  q = build_query("version" => version).update(default_query)
  r = get_first_result!(self.class.resource_name, version, "/admin/#{resource_key}.json", q)
  super("/admin/#{resource_key}/#{r['id']}/delete.json")
  log_success("OK")
end
select(name) click to toggle source
Calls superclass method Magellan::Cli::Resources::Base#select
# File lib/magellan/cli/resources/client_version.rb, line 70
def select(name)
  super
end
update(attrs) click to toggle source
# File lib/magellan/cli/resources/client_version.rb, line 37
def update(attrs)
  if File.readable?(attrs)
    attrs = YAML.load_file(attrs)
  else
    attrs = JSON.parse(attrs)
  end
  stage_name = attrs.delete("stage")

  cv = load_selection!(self.class)
  self.class.hidden_fields.each do |f| attrs.delete(f) end
  self.class.field_associations.keys.each do |f| attrs.delete(f) end

  unless stage_name.blank?
    q = Stage.new.build_name_query(stage_name)
    r = get_first_result!(Stage.parameter_name, stage_name, "/admin/stage~title.json", q)
    attrs["stage_title_id"] = r["id"]
  end

  params = {
    parameter_name => attrs
  }
  put_json("/admin/#{resource_key}/#{cv["id"]}/edit.js", params)
end