class GoodData::LCM2::CollectUsersBrickUsers

Constants

DESCRIPTION
MULTIPLE_COLUMN_MODES
PARAMS

Public Class Methods

call(params) click to toggle source
# File lib/gooddata/lcm/actions/collect_users_brick_users.rb, line 36
def call(params)
  users_brick_users = []
  login_column = params.users_brick_config.login_column&.downcase || 'login'
  users_brick_data_source = GoodData::Helpers::DataSource.new(params.users_brick_config.input_source)

  users_brick_data_source_file = without_check(PARAMS, params) do
    File.open(
      users_brick_data_source.realize(params),
      'r:UTF-8'
    )
  end
  CSV.foreach(users_brick_data_source_file,
              :headers => true,
              :return_headers => false,
              :header_converters => :downcase,
              :encoding => 'utf-8') do |row|
    pid = row[params.multiple_projects_column&.downcase]
    fail "The set multiple_projects_column '#{params.multiple_projects_column}' of the users input is empty" if !pid && MULTIPLE_COLUMN_MODES.include?(params.sync_mode)

    users_brick_users << {
      login: row[login_column].nil? ? nil : row[login_column].strip.downcase,
      pid: pid
    }
  end
  {
    # TODO; TMA-989 return the real results when print of results is fixed for large sets
    results: [{ status: 'ok' }],
    params: {
      users_brick_users: users_brick_users
    }
  }
end