Class: Assistant::TechnicalSupport::CaseReplayEvidence::ArticleEvidence
- Inherits:
-
Object
- Object
- Assistant::TechnicalSupport::CaseReplayEvidence::ArticleEvidence
- 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
- #canonical_urls_by_id ⇒ Object
- #citation_urls ⇒ Object
-
#initialize(tool_trace, normalize_url:) ⇒ ArticleEvidence
constructor
A new instance of ArticleEvidence.
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_id ⇒ Object
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_urls ⇒ Object
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 + + content_link_urls).uniq end |