set_configurable_field

in lib/app/console_app.rb [187:212]


    def set_configurable_field
      return unless connector_registered?

      connector = current_connector
      connector_class = connector.class
      current_values = Core::ConnectorSettings.fetch_by_id(connector_id)&.configuration
      return unless connector.present?

      puts 'Provided configurable fields:'
      configurable_fields = connector_class.configurable_fields
      fields = configurable_fields.each_key.map do |key|
        field = configurable_fields[key].with_indifferent_access
        current_value = current_values&.fetch(key, nil)
        { :command => key, :hint => "#{field[:label]} (current value: #{current_value}, default: #{field[:value]})" }
      end

      menu = App::Menu.new('Please select the configurable field:', fields)
      field_name = menu.select_command
      field_label = configurable_fields.dig(field_name, :label)

      puts 'Please enter the new value:'
      new_value = gets.chomp.strip
      Core::ElasticConnectorActions.set_configurable_field(connector_id, field_name, field_label, new_value)
      Utility::Logger.debug("Successfully updated field #{field_name} for connector #{connector_id} to #{new_value}")
    end