Class: Superset::Dashboard::Datasets::List

Inherits:
Request
  • Object
show all
Defined in:
lib/superset/dashboard/datasets/list.rb

Constant Summary

Constants inherited from Request

Request::DEFAULT_PAGE_SIZE

Instance Attribute Summary collapse

Attributes inherited from Request

#page_num, #page_size

Instance Method Summary collapse

Methods inherited from Request

call, #query_params, #response, #result, #superset_host

Methods included from Superset::Display

#ids, #list, #result, #table, #to_h

Constructor Details

#initialize(dashboard_id:, include_filter_datasets: true, include_catalog_lookup: true) ⇒ List

Returns a new instance of List.



12
13
14
15
16
# File 'lib/superset/dashboard/datasets/list.rb', line 12

def initialize(dashboard_id:, include_filter_datasets: true, include_catalog_lookup: true)
  @dashboard_id = dashboard_id
  @include_filter_datasets = include_filter_datasets
  @include_catalog_lookup = include_catalog_lookup
end

Instance Attribute Details

#dashboard_idObject (readonly)

id - dashboard id



10
11
12
# File 'lib/superset/dashboard/datasets/list.rb', line 10

def dashboard_id
  @dashboard_id
end

#include_catalog_lookupObject (readonly)

id - dashboard id



10
11
12
# File 'lib/superset/dashboard/datasets/list.rb', line 10

def include_catalog_lookup
  @include_catalog_lookup
end

#include_filter_datasetsObject (readonly)

id - dashboard id



10
11
12
# File 'lib/superset/dashboard/datasets/list.rb', line 10

def include_filter_datasets
  @include_filter_datasets
end

Instance Method Details

#catalogsObject



35
36
37
# File 'lib/superset/dashboard/datasets/list.rb', line 35

def catalogs
  datasets_details.map {|d| d[:catalog] }.compact.uniq
end

#databasesObject



31
32
33
# File 'lib/superset/dashboard/datasets/list.rb', line 31

def databases
  @databases ||= datasets_details.map {|d| d[:database] }.uniq
end

#datasets_detailsObject



23
24
25
26
27
28
29
# File 'lib/superset/dashboard/datasets/list.rb', line 23

def datasets_details
  @datasets_details ||= begin
    datasets_list = chart_datasets + Array(additional_filter_datasets)
    datasets_list = include_catalog_details(datasets_list) if include_catalog_lookup
    datasets_list.compact
  end
end

#performObject



18
19
20
21
# File 'lib/superset/dashboard/datasets/list.rb', line 18

def perform
  response
  self
end

#rowsObject



43
44
45
46
47
48
49
# File 'lib/superset/dashboard/datasets/list.rb', line 43

def rows
  datasets_details.map do |d|
    row = [d[:id], d[:datasource_name], d[:database][:backend], d[:database][:id], d[:database][:name]]
    row << d[:catalog] if include_catalog_lookup
    row + [d[:schema], d[:filter_only]]
  end
end

#schemasObject



39
40
41
# File 'lib/superset/dashboard/datasets/list.rb', line 39

def schemas
  datasets_details.map {|d| d[:schema] }.compact.uniq
end