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