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
results.flatten
end