Class: Assistant::TechnicalSupport::CaseReplayEpisodeBuilder

Inherits:
Object
  • Object
show all
Defined in:
app/services/assistant/technical_support/case_replay_episode_builder.rb

Overview

Converts structured episode extraction into the immutable replay value object
and validates that every evidence boundary is safe to use.

Defined Under Namespace

Classes: Result

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(payload:, events:) ⇒ CaseReplayEpisodeBuilder

Returns a new instance of CaseReplayEpisodeBuilder.



14
15
16
17
# File 'app/services/assistant/technical_support/case_replay_episode_builder.rb', line 14

def initialize(payload:, events:)
  @payload = payload.to_h.stringify_keys
  @events = Array(events)
end

Class Method Details

.call(payload:, events:) ⇒ Object



9
10
11
# File 'app/services/assistant/technical_support/case_replay_episode_builder.rb', line 9

def call(payload:, events:)
  new(payload:, events:).call
end

Instance Method Details

#callObject



19
20
21
22
23
24
25
# File 'app/services/assistant/technical_support/case_replay_episode_builder.rb', line 19

def call
  episode = build_episode
  Result.new(
    episode:,
    error: Assistant::TechnicalSupport::CaseReplayEpisodeValidator.call(episode:, events:)
  )
end