Class: ReactorSDK::Endpoints::RuleComponents
- Inherits:
-
BaseEndpoint
- Object
- BaseEndpoint
- ReactorSDK::Endpoints::RuleComponents
- Defined in:
- lib/reactor_sdk/endpoints/rule_components.rb
Instance Method Summary collapse
-
#create(property_id:, rule_id:, name:, delegate_descriptor_id:, settings:, extension_id:, rule_order: 50.0, order: 0) ⇒ ReactorSDK::Resources::RuleComponent
Creates a new rule component on a property.
-
#create_note(rule_component_id, text) ⇒ ReactorSDK::Resources::Note
Creates a note on a rule component.
-
#delete(rule_component_id) ⇒ nil
Deletes a rule component permanently.
-
#extension(rule_component_id) ⇒ ReactorSDK::Resources::Extension
Retrieves the extension that owns the rule component delegate.
-
#find(rule_component_id) ⇒ ReactorSDK::Resources::RuleComponent
Retrieves a single rule component by its Adobe ID.
-
#list_for_rule(rule_id) ⇒ Array<ReactorSDK::Resources::RuleComponent>
Lists all components for a given rule.
-
#list_notes(rule_component_id) ⇒ Array<ReactorSDK::Resources::Note>
Lists notes attached to a rule component.
-
#origin(rule_component_id) ⇒ ReactorSDK::Resources::RuleComponent
Retrieves the origin revision head for a rule component.
-
#rules(rule_component_id) ⇒ Array<ReactorSDK::Resources::Rule>
Lists rules that currently utilize a rule component.
-
#update(rule_component_id, attributes) ⇒ ReactorSDK::Resources::RuleComponent
Updates an existing rule component.
Methods inherited from BaseEndpoint
Constructor Details
This class inherits a constructor from ReactorSDK::Endpoints::BaseEndpoint
Instance Method Details
#create(property_id:, rule_id:, name:, delegate_descriptor_id:, settings:, extension_id:, rule_order: 50.0, order: 0) ⇒ ReactorSDK::Resources::RuleComponent
Creates a new rule component on a property.
The component is associated with a rule via the relationships.rules payload — NOT via the URL. The endpoint is always POST /properties/:property_id/rule_components.
The delegate_descriptor_id identifies which extension capability powers this component. Examples:
"core::actions::custom-code" — Core custom code action
"core::conditions::value-comparison" — Core value comparison condition
"core::events::click" — Core click event
The settings field must be a JSON-encoded string matching the schema expected by the delegate. For Core custom code:
settings: JSON.generate({ source: "console.log('hi');", language: "javascript" })
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 78 def create( property_id:, rule_id:, name:, delegate_descriptor_id:, settings:, extension_id:, rule_order: 50.0, order: 0 ) payload = build_rule_component_payload( name, delegate_descriptor_id, settings, extension_id, rule_id, rule_order, order ) response = @connection.post( "/properties/#{property_id}/rule_components", payload ) @parser.parse(response['data'], Resources::RuleComponent) end |
#create_note(rule_component_id, text) ⇒ ReactorSDK::Resources::Note
Creates a note on a rule component.
172 173 174 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 172 def create_note(rule_component_id, text) create_note_for_path("/rule_components/#{rule_component_id}/notes", text) end |
#delete(rule_component_id) ⇒ nil
Deletes a rule component permanently.
120 121 122 123 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 120 def delete(rule_component_id) @connection.delete("/rule_components/#{rule_component_id}") nil end |
#extension(rule_component_id) ⇒ ReactorSDK::Resources::Extension
Retrieves the extension that owns the rule component delegate.
131 132 133 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 131 def extension(rule_component_id) fetch_resource("/rule_components/#{rule_component_id}/extension", Resources::Extension) end |
#find(rule_component_id) ⇒ ReactorSDK::Resources::RuleComponent
Retrieves a single rule component by its Adobe ID.
45 46 47 48 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 45 def find(rule_component_id) response = @connection.get("/rule_components/#{rule_component_id}") @parser.parse(response['data'], Resources::RuleComponent) end |
#list_for_rule(rule_id) ⇒ Array<ReactorSDK::Resources::RuleComponent>
Lists all components for a given rule. Follows pagination automatically — returns all components.
33 34 35 36 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 33 def list_for_rule(rule_id) records = @paginator.all("/rules/#{rule_id}/rule_components") records.map { |r| @parser.parse(r, Resources::RuleComponent) } end |
#list_notes(rule_component_id) ⇒ Array<ReactorSDK::Resources::Note>
Lists notes attached to a rule component.
161 162 163 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 161 def list_notes(rule_component_id) list_notes_for_path("/rule_components/#{rule_component_id}/notes") end |
#origin(rule_component_id) ⇒ ReactorSDK::Resources::RuleComponent
Retrieves the origin revision head for a rule component.
141 142 143 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 141 def origin(rule_component_id) fetch_resource("/rule_components/#{rule_component_id}/origin", Resources::RuleComponent) end |
#rules(rule_component_id) ⇒ Array<ReactorSDK::Resources::Rule>
Lists rules that currently utilize a rule component.
151 152 153 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 151 def rules(rule_component_id) list_resources("/rule_components/#{rule_component_id}/rules", Resources::Rule) end |
#update(rule_component_id, attributes) ⇒ ReactorSDK::Resources::RuleComponent
Updates an existing rule component.
107 108 109 110 111 |
# File 'lib/reactor_sdk/endpoints/rule_components.rb', line 107 def update(rule_component_id, attributes) payload = build_payload('rule_components', attributes, id: rule_component_id) response = @connection.patch("/rule_components/#{rule_component_id}", payload) @parser.parse(response['data'], Resources::RuleComponent) end |