Class: Legion::Extensions::MicrosoftTeams::Client

Constant Summary

Constants included from Runners::Ownership

Runners::Ownership::OWNERS_SELECT, Runners::Ownership::TEAMS_FILTER, Runners::Ownership::TEAMS_SELECT

Constants included from Runners::Transcripts

Runners::Transcripts::CONTENT_TYPES

Constants included from Helpers::TraceRetriever

Helpers::TraceRetriever::MAX_TRACES, Helpers::TraceRetriever::MAX_TRACE_TOKENS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Runners::Loop

#create_loop_file, #loop_attachment, #post_loop_to_channel, #post_loop_to_chat

Methods included from Helpers::Client

#user_path

Methods included from Runners::Ownership

#detect_orphans, #get_team_owners, #sync_owners

Methods included from Runners::People

#get_profile, #list_people

Methods included from Runners::CacheIngest

#ingest_cache

Methods included from Runners::LocalCache

#extract_local_messages, #local_cache_available?, #local_cache_stats

Methods included from Runners::Transcripts

#get_transcript, #get_transcript_content, #list_transcripts

Methods included from Runners::Meetings

#create_meeting, #delete_meeting, #get_attendance_report, #get_meeting, #get_meeting_by_join_url, #list_attendance_reports, #list_meetings, #update_meeting

Methods included from Runners::Presence

#get_presence

Methods included from Runners::Bot

#create_conversation, #dispatch_message, #get_conversation_members, #handle_command, #handle_message, #observe_message, #reply_to_activity, #send_activity, #send_card, #send_text, #session_manager, #subscription_registry

Methods included from Helpers::TraceRetriever

#retrieve_context

Methods included from Helpers::PromptResolver

#resolve_llm_config, #resolve_prompt

Methods included from Runners::AdaptiveCards

#action_open_url, #action_submit, #build_card, #fact_set, #message_attachment, #text_block

Methods included from Runners::Subscriptions

#create_subscription, #delete_subscription, #get_subscription, #list_subscriptions, #renew_subscription, #subscribe_to_channel_messages, #subscribe_to_chat_messages

Methods included from Runners::ChannelMessages

#get_channel_message, #list_channel_message_replies, #list_channel_messages, #reply_to_channel_message, #send_channel_message

Methods included from Runners::Channels

#create_channel, #delete_channel, #get_channel, #list_channel_members, #list_channels, #update_channel

Methods included from Runners::Messages

#get_chat_message, #list_chat_messages, #list_message_replies, #reply_to_chat_message, #send_chat_message

Methods included from Runners::Chats

#add_chat_member, #create_chat, #get_chat, #list_chat_members, #list_chats

Methods included from Runners::Teams

#get_team, #list_joined_teams, #list_team_members

Methods included from Runners::Auth

#acquire_bot_token, #acquire_token, #auth_callback, #authorize_url, #exchange_code, #poll_device_code, #refresh_delegated_token, #request_device_code

Constructor Details

#initialize(tenant_id: nil, client_id: nil, client_secret: nil, token: nil, user_id: 'me', **extra) ⇒ Client

Returns a new instance of Client.



45
46
47
48
49
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 45

def initialize(tenant_id: nil, client_id: nil, client_secret: nil, token: nil,
               user_id: 'me', **extra)
  @opts = { tenant_id: tenant_id, client_id: client_id, client_secret: client_secret,
            token: token, user_id: user_id, **extra }
end

Instance Attribute Details

#optsObject (readonly)

Returns the value of attribute opts.



43
44
45
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 43

def opts
  @opts
end

Instance Method Details

#authenticate!Object



63
64
65
66
67
68
69
70
71
72
73
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 63

def authenticate!
  result = acquire_token(
    tenant_id:     @opts[:tenant_id],
    client_id:     @opts[:client_id],
    client_secret: @opts[:client_secret]
  )
  return result unless result&.dig(:result, 'access_token')

  @opts[:token] = result[:result]['access_token']
  result
end

#bot_connection(**override) ⇒ Object



55
56
57
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 55

def bot_connection(**override)
  super(**@opts.merge(override))
end

#graph_connection(**override) ⇒ Object



51
52
53
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 51

def graph_connection(**override)
  super(**@opts.merge(override))
end

#oauth_connection(**override) ⇒ Object



59
60
61
# File 'lib/legion/extensions/microsoft_teams/client.rb', line 59

def oauth_connection(**override)
  super(**@opts.merge(override))
end