class GoodData::LCM2::CollectMeta
Constants
- DESCRIPTION
- PARAMS
Public Class Methods
call(params)
click to toggle source
# File lib/gooddata/lcm/actions/collect_meta.rb, line 36 def call(params) results = [] development_client = params.development_client segments_to_tags = Helpers.segment_production_tags(params.segments) transfer_all = GoodData::Helpers.to_boolean(params.transfer_all) synchronize = params.synchronize.pmap do |info| from = info.from from_project = development_client.projects(from) || fail("Invalid 'from' project specified - '#{from}'") segment_tags = segments_to_tags[info.segment] production_tags = Helpers.parse_production_tags(params.production_tags || params.production_tag, segment_tags) if transfer_all || production_tags.empty? old_dashboards = GoodData::Dashboard.all( project: from_project, client: development_client ) kpi_dashboards = MdObject.query('analyticalDashboard', MdObject, client: development_client, project: from_project) kpi_dashboard_plugin = MdObject.query('dashboardPlugin', MdObject, client: development_client, project: from_project) kpi_date_filter_config = MdObject.query('dateFilterConfig', MdObject, client: development_client, project: from_project) objects = old_dashboards.to_a + kpi_dashboards.to_a + kpi_dashboard_plugin.to_a + kpi_date_filter_config.to_a else objects = GoodData::Dashboard.find_by_tag( production_tags, project: from_project, client: development_client ) end info[:transfer_uris] ||= [] info[:transfer_uris] += objects.map(&:uri) results += objects.map do |uri| { project: from, transfer_uri: uri } end info end { results: results, params: { synchronize: synchronize } } end