class GoodData::LCM2::CollectClientProjects
Constants
- DESCRIPTION
- PARAMS
- RESULT_HEADER
Public Class Methods
call(params)
click to toggle source
# File lib/gooddata/lcm/actions/collect_client_projects.rb, line 35 def call(params) client = params.gdc_gd_client domain = client.domain(params.organization) || fail("Invalid domain name specified - #{params.organization}") data_product = params.data_product all_segments = domain.segments(:all, data_product) segment_names = params.segments.map do |segment| segment.segment_id.downcase end segments = all_segments.select do |segment| segment_names.include?(segment.segment_id.downcase) end client_projects = ThreadSafe::Hash.new results = segments.pmap do |segment| segment.clients.map do |segment_client| project = segment_client.project res = { client_id: segment_client.client_id, project: project && project.pid } client_projects[segment_client.client_id] = { segment_client: segment_client, project: project } res end end { results: results.flatten, params: { client_projects: client_projects } } end