Class: Assistant::AudienceUpdater
- Inherits:
-
Object
- Object
- Assistant::AudienceUpdater
- Defined in:
- app/services/assistant/audience_updater.rb
Overview
Applies validated, size-gated changes to one email audience.
Class Method Summary collapse
-
.call(attributes, actor_id:) ⇒ String
Runs an audience update and returns the JSON tool response.
Instance Method Summary collapse
-
#call ⇒ String
Applies the update after validation and recipient-size confirmation.
-
#initialize(attributes, actor_id) ⇒ AudienceUpdater
constructor
A new instance of AudienceUpdater.
Constructor Details
#initialize(attributes, actor_id) ⇒ AudienceUpdater
Returns a new instance of AudienceUpdater.
18 19 20 21 |
# File 'app/services/assistant/audience_updater.rb', line 18 def initialize(attributes, actor_id) @changes = AudienceUpdateChanges.new(attributes) @actor_id = actor_id end |
Class Method Details
.call(attributes, actor_id:) ⇒ String
Runs an audience update and returns the JSON tool response.
12 13 14 |
# File 'app/services/assistant/audience_updater.rb', line 12 def self.call(attributes, actor_id:) new(attributes, actor_id).call end |
Instance Method Details
#call ⇒ String
Applies the update after validation and recipient-size confirmation.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/services/assistant/audience_updater.rb', line 26 def call audience, error = AudienceToolBuilder.find_audience_or_error(changes.attributes[:audience_id]) return error if error error = validation_error(audience) return error if error estimate, error = update_estimate(audience) return error if error assign_attributes(audience) return save_error(audience) unless audience.save success_payload(audience, estimate).to_json rescue StandardError => e { error: e. }.to_json end |