class GoodData::LCM2::SynchronizeProcesses

Constants

DESCRIPTION
PARAMS
RESULT_HEADER

Public Class Methods

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

  client = params.gdc_gd_client
  development_client = params.development_client

  params.synchronize.peach do |info|
    from_project = info.from
    to_projects = info.to

    from = development_client.projects(from_project) || fail("Invalid 'from' project specified - '#{from_project}'")

    to_projects.peach do |to|
      pid = to[:pid]
      client_id = to[:client_id]

      to_project = client.projects(pid) || fail("Invalid 'to' project specified - '#{pid}'")

      params.gdc_logger.info "Transferring processes, from project: '#{from.title}', PID: '#{from.pid}', to project: '#{to_project.title}', PID: '#{to_project.pid}'"
      res = GoodData::Project.transfer_processes(
        from,
        to_project,
        ads_output_stage_uri: info.ads_output_stage_uri,
        ads_output_stage_prefix: info.ads_output_stage_prefix,
        additional_hidden_params: params.process_additional_hidden_params
      )

      to_project.add.output_stage.client_id = client_id if client_id && to_project.add.output_stage

      results << res
    end
  end

  # Return results
  results.flatten
end