Class: Assistant::TechnicalSupport::CaseReplayEvidence::ArticleEvidence

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

Overview

Reads Technical Article provenance from successful canonical article tools.

Constant Summary collapse

Payload =
Assistant::TechnicalSupport::CaseReplayEvidence::ToolPayload
READER =
'get_technical_article'
SEARCH =
'search_technical_articles'

Instance Method Summary collapse

Constructor Details

#initialize(tool_trace, normalize_url:) ⇒ ArticleEvidence

Returns a new instance of ArticleEvidence.



9
10
11
12
# File 'app/services/assistant/technical_support/case_replay_evidence/article_evidence.rb', line 9

def initialize(tool_trace, normalize_url:)
  @tool_trace = tool_trace
  @normalize_url = normalize_url
end

Instance Method Details

#canonical_urls_by_idObject



18
19
20
21
22
23
24
# File 'app/services/assistant/technical_support/case_replay_evidence/article_evidence.rb', line 18

def canonical_urls_by_id
  @canonical_urls_by_id ||= (reader_payloads + search_payloads).each_with_object({}) do |payload, urls|
    id = payload['id'].to_i
    url = normalize_url.call(payload.dig('citation', 'url'))
    urls[id] ||= url if id.positive? && url.present?
  end
end

#citation_urlsObject



14
15
16
# File 'app/services/assistant/technical_support/case_replay_evidence/article_evidence.rb', line 14

def citation_urls
  (canonical_urls_by_id.values + related_article_urls + content_link_urls).uniq
end