Class: Gzr::Commands::Look::Import

Inherits:
Gzr::Command show all
Includes:
FileHelper, Look, Plan, User
Defined in:
lib/gzr/commands/look/import.rb

Instance Method Summary collapse

Methods included from FileHelper

#read_file, #write_file

Methods included from Plan

#create_scheduled_plan, #delete_scheduled_plan, #query_all_scheduled_plans, #query_scheduled_plan, #query_scheduled_plans_for_dashboard, #query_scheduled_plans_for_look, #run_scheduled_plan, #update_scheduled_plan, #upsert_plan_for_dashboard, #upsert_plan_for_look, #upsert_plan_for_obj, #upsert_plans_for_dashboard, #upsert_plans_for_look, #upsert_plans_for_obj

Methods included from User

#query_all_users, #query_me, #query_user, #search_users, #update_user

Methods included from Look

#create_fetch_query, #create_look, #create_merge_result, #delete_look, #query_look, #search_looks_by_slug, #search_looks_by_title, #update_look, #upsert_look

Methods inherited from Gzr::Command

#create_merge_query, #create_query, #field_expression, #field_names, #keys_to_keep, #merge_query, #pairs, #query, #render_csv, #run_inline_query

Methods included from Session

#build_connection_hash, #login, #logout_all, #pastel, #say_error, #say_ok, #say_warning, #v3_1_available?, #with_session

Constructor Details

#initialize(file, dest_space_id, options) ⇒ Import

Returns a new instance of Import.



38
39
40
41
42
43
# File 'lib/gzr/commands/look/import.rb', line 38

def initialize(file, dest_space_id, options)
  super()
  @file = file
  @dest_space_id = dest_space_id
  @options = options
end

Instance Method Details

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



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/gzr/commands/look/import.rb', line 45

def execute(input: $stdin, output: $stdout)
  say_warning("options: #{@options.inspect}") if @options[:debug]
  with_session do

    @me ||= query_me("id")
    
    read_file(@file) do |data|
      look = upsert_look(@me.id,create_fetch_query(data[:query]).id,@dest_space_id,data)
      upsert_plans_for_look(look.id,@me.id,data[:scheduled_plans]) if data[:scheduled_plans]
      output.puts "Imported look #{look.id}" unless @options[:plain] 
      output.puts look.id if @options[:plain] 
    end
  end
end