Class: GoodData::LCM2::SynchronizeLdm

Inherits:
BaseAction show all
Defined in:
lib/gooddata/lcm/actions/synchronize_ldm.rb

Constant Summary collapse

DESCRIPTION =
'Synchronize Logical Data Model'
PARAMS =
define_params(self) do
  description 'Client Used for Connecting to GD'
  param :gdc_gd_client, instance_of(Type::GdClientType), required: true

  description 'Client used to connecting to development domain'
  param :development_client, instance_of(Type::GdClientType), required: true

  description 'Synchronization Info'
  param :synchronize, array_of(instance_of(Type::SynchronizationInfoType)), required: true, generated: true

  description 'LDM Update Preference'
  param :update_preference, instance_of(Type::UpdatePreferenceType), required: false

  description 'Specifies whether to transfer computed attributes'
  param :include_computed_attributes, instance_of(Type::BooleanType), required: false, default: true

  description 'Logger'
  param :gdc_logger, instance_of(Type::GdLogger), required: true

  description 'Additional Hidden Parameters'
  param :additional_hidden_params, instance_of(Type::HashType), required: false

  description 'Allows to have facts with higher precision decimals'
  param :exclude_fact_rule, instance_of(Type::BooleanType), required: false, default: false

  description 'Specifies how to synchronize LDM and resolve possible conflicts'
  param :synchronize_ldm, instance_of(Type::SynchronizeLDM), required: false, default: 'diff_against_master_with_fallback'

  description 'Enables handling of deprecated objects in the logical data model.'
  param :include_deprecated, instance_of(Type::BooleanType), required: false, default: false
end
RESULT_HEADER =
%i[from to status]

Constants included from Dsl::Dsl

Dsl::Dsl::DEFAULT_OPTS, Dsl::Dsl::TYPES

Class Method Summary collapse

Methods inherited from BaseAction

check_params, without_check

Methods included from Dsl::Dsl

#define_params, #define_type, #process

Class Method Details

.call(params) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/gooddata/lcm/actions/synchronize_ldm.rb', line 55

def call(params)
  results = []
  synchronize = []
  params.synchronize.map do |segment_info|
    new_segment_info, segment_results = sync_segment_ldm(params, segment_info)
    results.concat(segment_results)
    synchronize << new_segment_info
  end

  {
    results: results,
    params: {
      synchronize: synchronize
    }
  }
end