Class: Gzr::Commands::Dashboard::ImportLookml
- Inherits:
-
Gzr::Command
- Object
- Gzr::Command
- Gzr::Commands::Dashboard::ImportLookml
- Includes:
- Dashboard
- Defined in:
- lib/gzr/commands/dashboard/import_lookml.rb
Instance Method Summary collapse
- #execute(input: $stdin, output: $stdout) ⇒ Object
-
#initialize(dashboard_id, target_folder_id, options) ⇒ ImportLookml
constructor
A new instance of ImportLookml.
Methods included from Dashboard
#cat_dashboard, #create_dashboard, #create_dashboard_element, #create_dashboard_filter, #create_dashboard_layout, #delete_dashboard, #delete_dashboard_element, #delete_dashboard_filter, #delete_dashboard_layout, #get_all_dashboard_layout_components, #get_dashboard_layout, #import_lookml_dashboard, #query_dashboard, #search_dashboards_by_slug, #search_dashboards_by_title, #sync_lookml_dashboard, #trim_dashboard, #update_dashboard, #update_dashboard_element, #update_dashboard_filter, #update_dashboard_layout, #update_dashboard_layout_component
Methods included from Alert
#alert_notifications, #create_alert, #delete_alert, #follow_alert, #get_alert, #read_alert_notification, #search_alerts, #unfollow_alert, #update_alert, #update_alert_field
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(dashboard_id, target_folder_id, options) ⇒ ImportLookml
Returns a new instance of ImportLookml.
33 34 35 36 37 38 |
# File 'lib/gzr/commands/dashboard/import_lookml.rb', line 33 def initialize(dashboard_id, target_folder_id, ) super() @dashboard_id = dashboard_id @target_folder_id = target_folder_id @options = end |
Instance Method Details
#execute(input: $stdin, output: $stdout) ⇒ Object
40 41 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 75 |
# File 'lib/gzr/commands/dashboard/import_lookml.rb', line 40 def execute(input: $stdin, output: $stdout) say_warning("options: #{@options.inspect}", output: output) if @options[:debug] with_session do dash = query_dashboard(@dashboard_id) raise Gzr::CLI::Error, "Dashboard with id #{@dashboard_id} does not exist" unless dash matching_title = search_dashboards_by_title(dash[:title],@target_folder_id) if matching_title.empty? || matching_title.first[:deleted] matching_title = false end if matching_title && !(matching_title.first[:lookml_link_id] == @dashboard_id) raise Gzr::CLI::Error, "Dashboard #{dash[:title]} already exists in folder #{@target_folder_id}\nUse --force if you want to overwrite it" unless @options[:force] say_ok "Deleting existing dashboard #{matching_title.first[:id]} #{matching_title.first[:title]} in folder #{@target_folder_id}", output: output update_dashboard(matching_title.first[:id],{:deleted=>true}) end if matching_title && (matching_title.first[:lookml_link_id] == @dashboard_id) raise Gzr::CLI::Error, "Linked Dashboard #{dash[:title]} already exists in folder #{@target_folder_id}\nUse --sync if you want to synchronize it" unless @options[:sync] say_ok "Syncing existing dashboard #{matching_title.first[:id]} #{matching_title.first[:title]} in folder #{@target_folder_id}", output: output output.puts sync_lookml_dashboard(@dashboard_id) return end new_dash = import_lookml_dashboard(@dashboard_id,@target_folder_id) if @options[:unlink] body = {} body[:lookml_link_id] = nil update_dashboard(new_dash[:id],body) end output.puts "Created user defined dashboard #{new_dash[:id]} in folder #{@target_folder_id}" unless @options[:plain] output.puts new_dash[:id] if @options[:plain] end end |