class GoodData::LCM2::EnsureTechnicalUsersDomain

Constants

DESCRIPTION
PARAMS
RESULT_HEADER

Public Class Methods

call(params) click to toggle source
# File lib/gooddata/lcm/actions/ensure_technical_users_domain.rb, line 40
def call(params)
  client = params.gdc_gd_client

  domain_name = params.organization || params.domain
  fail "Either organisation or domain has to be specified in params" unless domain_name
  domain = client.domain(domain_name) || fail("Invalid domain name specified - #{domain_name}")

  technical_users = (params.technical_users || params.technical_user || []).uniq
  technical_users.pmap do |technical_user|
    domain_user = domain.users.find do |du|
      du.login == technical_user
    end

    if domain_user
      {
        login: domain_user.login,
        email: domain_user.email,
        domain: domain_name,
        status: 'exists'
      }
    else
      user = domain.add_user(login: technical_user, email: technical_user)
      {
        login: user.login,
        email: user.email,
        domain: domain_name,
        status: 'added'
      }
    end
  end
end