Class: Gzr::Commands::Attribute::SetGroupValue

Inherits:
Gzr::Command
  • Object
show all
Includes:
Attribute, Group
Defined in:
lib/gzr/commands/attribute/set_group_value.rb

Instance Method Summary collapse

Methods included from Group

#query_all_groups, #query_group, #query_group_groups, #query_group_users, #search_groups, #update_user_attribute_group_value

Methods included from Attribute

#create_attribute, #delete_user_attribute, #get_attribute_by_label, #get_attribute_by_name, #query_all_user_attribute_group_values, #query_all_user_attributes, #query_user_attribute, #query_user_attribute_group_value, #update_attribute, #upsert_user_attribute

Methods inherited from Gzr::Command

#all_color_collections, #color_collection, #color_palette_lookup!, #create_merge_query, #create_query, #default_color_collection, #field_expressions_eval, #field_names, #find_color_palette_reference, #find_vis_config_reference, #get_auth, #get_user_by_id, #keys_to_keep, #keys_to_keep_internal, #merge_query, #pairs, #query, #render_csv, #rewrite_color_palette!, #run_inline_query, #update_color_palette!

Methods included from Session

#build_connection_hash, #login, #logout_all, #pastel, #read_token_data, #say_error, #say_ok, #say_warning, #sufficient_version?, #token_file, #update_auth, #with_session, #write_token_data

Constructor Details

#initialize(group, attr, value, options) ⇒ SetGroupValue

Returns a new instance of SetGroupValue.



34
35
36
37
38
39
40
# File 'lib/gzr/commands/attribute/set_group_value.rb', line 34

def initialize(group,attr,value,options)
  super()
  @group = group
  @attr = attr
  @value = value
  @options = options
end

Instance Method Details

#execute(input: $stdin, output: $stdout) ⇒ Object



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gzr/commands/attribute/set_group_value.rb', line 42

def execute(input: $stdin, output: $stdout)
  say_warning(@options) if @options[:debug]
  with_session do

    group_id = @group if /^\d+$/.match @group
    group = nil
    if group_id
      group = query_group(group_id)
    else
      results = search_groups(@group)
      if results && results.length == 1
        group = results.first
      elsif results
        raise(Gzr::CLI::Error, "Pattern #{@group} matched more than one group")
      else
        raise(Gzr::CLI::Error, "Pattern #{@group} did not match any groups")
      end
    end

    attr_id = @attr if /^\d+$/.match @attr
    attr = nil
    if attr_id
      attr = query_user_attribute(attr_id)
    else
      attr = get_attribute_by_name(@attr)
    end
    raise(Gzr::CLI::Error, "Attribute #{@attr} does not exist") unless attr

    data = update_user_attribute_group_value(group[:id],attr[:id], @value)
    say_warning("Attribute #{attr[:name]} does not have a value set for group #{group[:name]}", output: output) unless data
    output.puts "Group attribute #{data[:id]} set to #{data[:value]}"
  end
end