def call(params)
params = params.to_hash
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}")
if params.key?(:data_product)
data_product_id = params.data_product
else
params.gdc_logger.info "Using data product 'default' since none was specified in brick parameters"
data_product_id = 'default'
end
begin
params.gdc_logger.info "Starting to find DataProduct ID: #{data_product_id}"
data_product = domain.data_products(data_product_id)
rescue RestClient::BadRequest, RestClient::NotFound
params.gdc_logger.info "Can not find DataProduct #{params.data_product}, creating it instead"
data_product = domain.create_data_product(id: params.data_product)
end
results = [
{
data_product: data_product_id
}
]
{
results: results,
params: {
data_product: data_product
}
}
end