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
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