Module: Legion::Extensions::MicrosoftTeams::Runners::ChannelMessages

Extended by:
Definitions
Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/microsoft_teams/runners/channel_messages.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Helpers::Client

#bot_connection, #graph_connection, #oauth_connection, #user_path

Class Method Details

.trigger_wordsObject



13
14
15
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 13

def self.trigger_words
  %w[post posts feed thread reply]
end

Instance Method Details

#edit_channel_message(team_id:, channel_id:, message_id:, content:, content_type: 'text') ⇒ Object



124
125
126
127
128
129
130
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 124

def edit_channel_message(team_id:, channel_id:, message_id:, content:, content_type: 'text', **)
  payload = { body: { contentType: content_type, content: content } }
  response = graph_connection(**).patch(
    "teams/#{team_id}/channels/#{channel_id}/messages/#{message_id}", payload
  )
  { result: response.body }
end

#get_channel_message(team_id:, channel_id:, message_id:) ⇒ Object



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

def get_channel_message(team_id:, channel_id:, message_id:, **)
  response = graph_connection(**).get("teams/#{team_id}/channels/#{channel_id}/messages/#{message_id}")
  { result: response.body }
end

#list_channel_message_replies(team_id:, channel_id:, message_id:, top: 50) ⇒ Object



103
104
105
106
107
108
109
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 103

def list_channel_message_replies(team_id:, channel_id:, message_id:, top: 50, **)
  params = { '$top' => top }
  response = graph_connection(**).get(
    "teams/#{team_id}/channels/#{channel_id}/messages/#{message_id}/replies", params
  )
  { result: response.body }
end

#list_channel_messages(team_id:, channel_id:, top: 50) ⇒ Object



28
29
30
31
32
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 28

def list_channel_messages(team_id:, channel_id:, top: 50, **)
  params = { '$top' => top }
  response = graph_connection(**).get("teams/#{team_id}/channels/#{channel_id}/messages", params)
  { result: response.body }
end

#reply_to_channel_message(team_id:, channel_id:, message_id:, content:, content_type: 'text') ⇒ Object



83
84
85
86
87
88
89
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 83

def reply_to_channel_message(team_id:, channel_id:, message_id:, content:, content_type: 'text', **)
  payload = { body: { contentType: content_type, content: content } }
  response = graph_connection(**).post(
    "teams/#{team_id}/channels/#{channel_id}/messages/#{message_id}/replies", payload
  )
  { result: response.body }
end

#send_channel_message(team_id:, channel_id:, content:, content_type: 'text', attachments: []) ⇒ Object



63
64
65
66
67
68
# File 'lib/legion/extensions/microsoft_teams/runners/channel_messages.rb', line 63

def send_channel_message(team_id:, channel_id:, content:, content_type: 'text', attachments: [], **)
  payload = { body: { contentType: content_type, content: content } }
  payload[:attachments] = attachments unless attachments.empty?
  response = graph_connection(**).post("teams/#{team_id}/channels/#{channel_id}/messages", payload)
  { result: response.body }
end