class GoodData::LCM2::BaseAction
Constants
- FAILED_CLIENTS
- FAILED_PROJECTS
- FAILED_SEGMENTS
- SYNC_FAILED_LIST
Public Class Methods
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 71 def add_failed_client(client_id, message, error_action, params) if collect_synced_status(params) && !sync_failed_client(client_id, params) sync_failed_list = sync_failed_list(params) client_project_mappings = sync_failed_list[:client_project_mappings] client_project_mapping = client_project_mappings ? client_project_mappings[client_id.to_sym] : nil project_id = client_project_mapping ? client_project_mapping[:project_id] : nil segment_id = client_project_mapping ? client_project_mapping[:segment_id] : nil failed_detailed_client = { project_id: project_id, client_id: client_id, segment: segment_id, message: message, action: error_action } add_failed_detail(params, failed_detailed_client, sync_failed_list) end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 52 def add_failed_project(project_id, message, failed_action, params) if collect_synced_status(params) && !sync_failed_project(project_id, params) sync_failed_list = sync_failed_list(params) project_client_mappings = sync_failed_list[:project_client_mappings] project_client_mapping = project_client_mappings ? project_client_mappings[project_id.to_sym] : nil client_id = project_client_mapping ? project_client_mapping[:client_id] : nil segment_id = project_client_mapping ? project_client_mapping[:segment_id] : nil failed_detailed_project = { project_id: project_id, client_id: client_id, segment: segment_id, message: message, action: failed_action } add_failed_detail(params, failed_detailed_project, sync_failed_list) end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 90 def add_failed_segment(segment_id, message, error_action, params) if collect_synced_status(params) && !sync_failed_segment(segment_id, params) sync_failed_list = sync_failed_list(params) failed_detailed_segment = { project_id: nil, client_id: nil, segment: segment_id, message: message, action: error_action } add_failed_detail(params, failed_detailed_segment, sync_failed_list, true) end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 110 def add_new_clients_to_project_client_mapping(project_id, client_id, segment_id, params) if collect_synced_status(params) sync_failed_list = sync_failed_list(params) client_project_mappings = sync_failed_list[:client_project_mappings] project_client_mappings = sync_failed_list[:project_client_mappings] client_project_mappings[client_id.to_sym] = { project_id: project_id, segment_id: segment_id } if client_project_mappings project_client_mappings[project_id.to_sym] = { client_id: client_id, segment_id: segment_id } if project_client_mappings end end
Add new clients to project client mapping
@param [String] project_id project identify will be added to mapping @param [String] client_id client identify will be added to mapping @param [String] segment_id segment identify will be added to mapping @param [Hash] params the hash contains list of parameters and values
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 26 def check_params(specification, params) Helpers.check_params(specification, params) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 48 def collect_synced_status(params) Helpers.collect_synced_status(params) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 44 def continue_on_error(params) Helpers.continue_on_error(params) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 40 def print_result(_params) true end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 127 def process_failed_project(project_id, failed_message, failed_projects, continue_on_error) fail(failed_message) unless continue_on_error failed_projects << { project_id: project_id, message: failed_message } end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 136 def process_failed_projects(failed_projects, failed_action, params) failed_projects.each do |failed_project| add_failed_project(failed_project[:project_id], failed_project[:message], failed_action, params) end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 146 def sync_failed_client(client_id, params) collect_synced_status(params) && params[SYNC_FAILED_LIST][FAILED_CLIENTS].include?(client_id) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 142 def sync_failed_project(project_id, params) collect_synced_status(params) && params[SYNC_FAILED_LIST][FAILED_PROJECTS].include?(project_id) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 150 def sync_failed_segment(segment_id, params) collect_synced_status(params) && params[SYNC_FAILED_LIST][FAILED_SEGMENTS].include?(segment_id) end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 33 def without_check(specification, params) params.clear_filters # disables params validation result = yield params.setup_filters(specification) # enables params validation result end
This method is used to enable the possibility to read keys of params object which are not specified in the specification constant typically in case when method access params dynamically based on user input
Private Class Methods
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 156 def add_failed_detail(params, failed_detailed_project, sync_failed_list, ignore_segment = false) params.gdc_logger&.warn failed_detailed_project[:message] sync_failed_list[:failed_detailed_projects] << failed_detailed_project if ignore_segment add_failed_detail_segment(failed_detailed_project[:segment_id], sync_failed_list) else add_failed_detail_client(failed_detailed_project[:client_id], failed_detailed_project[:project_id], sync_failed_list) end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 175 def add_failed_detail_client(client_id, project_id, sync_failed_list) sync_failed_list[FAILED_CLIENTS] << client_id if client_id sync_failed_list[FAILED_PROJECTS] << project_id if project_id end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 181 def add_failed_detail_segment(segment_id, sync_failed_list) if segment_id sync_failed_list[FAILED_SEGMENTS] << segment_id client_project_mappings = sync_failed_list[:client_project_mappings] client_project_mappings.each do |client_id, client_project_mapping| add_failed_detail_client(client_id, client_project_mapping[:project_id], sync_failed_list) if client_project_mapping[:segment_id] == segment_id end end end
Source
# File lib/gooddata/lcm/actions/base_action.rb, line 167 def sync_failed_list(params) if params.include?(SYNC_FAILED_LIST) params[SYNC_FAILED_LIST] else nil end end