Module: Ecoportal::API::GraphQL::Input::WorkflowCommand::ManageCopyPageConfiguration

Defined in:
lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb

Overview

WorkflowManageCopyPageConfigurationInput — first observed in the live schema on 20260819, which is when validate-queries went red on it being unwired. main's last green pipeline was 2026-08-16, so the drift landed in that window.

★ The field NAMES and TYPES below are verified against the schema dump. Their MEANING is NOT: the schema carries no descriptions for them, and no verified platform note covers page-copy configuration. Best reading, offered as a HYPOTHESIS only — this appears to configure the platform's copy-a-page behaviour: whether a copy OVERRIDES the creator permissions rather than inheriting them (note the field is named override…, so do not assume the inverse), whether template content added later is automatically included in future copies, and per-data-field whether that field is included in a copy (include) and whether the choice is locked against per-copy override (enforce). enforce is the least certain of these. Confirm against platform behaviour before relying on any of it; see the repo's internal docs.

Constant Summary collapse

SCHEMA_VERSION =
'20260819'.freeze
VALID_KEYS =
i[overridePageCreatorPermissions autoIncludeNewContent inclusionSettingsChanges].freeze
INCLUSION_SETTINGS_CHANGE_KEYS =

WorkflowInclusionSettingsChangeInput — dataFieldId is REQUIRED on the schema side; this builder only filters keys, it does not validate presence (see siblings).

i[dataFieldId include enforce].freeze

Class Method Summary collapse

Class Method Details

.build(**kwargs) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/ecoportal/api/graphql/input/workflow_command/manage_copy_page_configuration.rb', line 28

def self.build(**kwargs)
  built = kwargs.slice(*VALID_KEYS).compact
  return built unless built.key?(:inclusionSettingsChanges)

  # NOTE: `Array(a_hash)` calls `Hash#to_a` and yields key/value PAIRS, not a
  # one-element array containing the hash -- do not "simplify" this to `Array(...)`.
  changes = built[:inclusionSettingsChanges]
  changes = [changes] unless changes.is_a?(::Array)

  built[:inclusionSettingsChanges] = changes.map do |change|
    change.transform_keys(&:to_sym).slice(*INCLUSION_SETTINGS_CHANGE_KEYS).compact
  end
  built
end