Class: Legion::Extensions::MicrosoftTeams::Absorbers::Meeting
- Inherits:
-
Absorbers::Base
- Object
- Absorbers::Base
- Legion::Extensions::MicrosoftTeams::Absorbers::Meeting
- Defined in:
- lib/legion/extensions/microsoft_teams/absorbers/meeting.rb
Instance Method Summary collapse
-
#absorb(url: nil, content: nil, metadata: {}, context: {}) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument.
Instance Method Details
#absorb(url: nil, content: nil, metadata: {}, context: {}) ⇒ Object
rubocop:disable Lint/UnusedMethodArgument
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/legion/extensions/microsoft_teams/absorbers/meeting.rb', line 13 def absorb(url: nil, content: nil, metadata: {}, context: {}) # rubocop:disable Lint/UnusedMethodArgument report_progress(message: 'resolving meeting from link') meeting = resolve_meeting(url) return { success: false, error: 'could not resolve meeting' } unless meeting subject = meeting['subject'] || meeting[:subject] || 'untitled meeting' meeting_id = meeting['id'] || meeting[:id] return { success: false, error: 'meeting has no id' } if meeting_id.nil? || meeting_id.to_s.empty? results = { meeting_id: meeting_id, subject: subject, chunks: 0 } ingest_transcript(meeting_id, subject, results) ingest_ai_insights(meeting_id, subject, results) ingest_participants(meeting, subject, results) report_progress(message: 'done', percent: 100) results.merge(success: true) rescue StandardError => e log.error("Meeting absorber failed: #{e.}") { success: false, error: e. } end |