Module: Legion::Extensions::MicrosoftTeams::Runners::Teams
- Extended by:
- Definitions
- Includes:
- Helpers::Lex, Helpers::Client
- Included in:
- Client
- Defined in:
- lib/legion/extensions/microsoft_teams/runners/teams.rb
Class Method Summary
collapse
Instance Method Summary
collapse
#bot_connection, #graph_connection, #oauth_connection, #user_path
Class Method Details
.trigger_words ⇒ Object
13
14
15
|
# File 'lib/legion/extensions/microsoft_teams/runners/teams.rb', line 13
def self.trigger_words
%w[team teams workspace group membership]
end
|
Instance Method Details
#get_team(team_id:) ⇒ Object
47
48
49
50
|
# File 'lib/legion/extensions/microsoft_teams/runners/teams.rb', line 47
def get_team(team_id:, **)
response = graph_connection(**).get("teams/#{team_id}")
{ result: response.body }
end
|
#list_joined_teams(user_id: 'me', filter: nil, select: nil) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/legion/extensions/microsoft_teams/runners/teams.rb', line 30
def list_joined_teams(user_id: 'me', filter: nil, select: nil, **)
params = {}
params['$filter'] = filter if filter
params['$select'] = select if select
response = graph_connection(**).get("#{user_path(user_id)}/joinedTeams", params)
{ result: response.body }
end
|
#list_team_members(team_id:, top: 100, max_pages: 1, filter: nil) ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'lib/legion/extensions/microsoft_teams/runners/teams.rb', line 68
def list_team_members(team_id:, top: 100, max_pages: 1, filter: nil, **)
params = { '$top' => top }
params['$filter'] = filter if filter
conn = graph_connection(**)
response = conn.get("teams/#{team_id}/members", params)
body = response.body
return { result: body } if max_pages <= 1
all_values = Array(body['value'] || body[:value])
next_link = body['@odata.nextLink'] || body[:'@odata.nextLink']
pages_fetched = 1
while next_link && pages_fetched < max_pages
response = conn.get(next_link)
page_body = response.body
items = page_body['value'] || page_body[:value]
all_values.concat(Array(items)) if items
next_link = page_body['@odata.nextLink'] || page_body[:'@odata.nextLink']
pages_fetched += 1
end
result = { '@odata.context' => body['@odata.context'] || body[:'@odata.context'],
'value' => all_values }
result['@odata.nextLink'] = next_link if next_link
{ result: result }
end
|