class GoodData::LCM2::CollectLdmObjects

Constants

DESCRIPTION
PARAMS

Public Class Methods

call(params) click to toggle source
# File lib/gooddata/lcm/actions/collect_ldm_objects.rb, line 23
def call(params)
  results = []

  development_client = params.development_client

  synchronize = params.synchronize.pmap do |info|
    from = info.from
    from_project = development_client.projects(from) || fail("Invalid 'from' project specified - '#{from}'")
    datasets = from_project.datasets.to_a
    # TMA-836 - reading objects from datasets includes deprecated ones
    attributes = datasets.map(&:attribute_uris).flatten
    facts = datasets.map(&:fact_uris).flatten
    objects = (from_project.labels.to_a + datasets).map(&:uri) + attributes + facts

    info[:transfer_uris] ||= []
    info[:transfer_uris] += objects

    results += objects.map do |uri|
      {
        project: from,
        transfer_uri: uri
      }
    end

    info
  end

  {
    results: results,
    params: {
      synchronize: synchronize
    }
  }
end