Module: Legion::Extensions::MicrosoftTeams::Runners::Meetings

Includes:
Helpers::Lex, Helpers::Client
Included in:
Client
Defined in:
lib/legion/extensions/microsoft_teams/runners/meetings.rb

Instance Method Summary collapse

Methods included from Helpers::Client

#bot_connection, #graph_connection, #oauth_connection, #user_path

Instance Method Details

#create_meeting(subject:, start_time:, end_time:, user_id: 'me') ⇒ Object



22
23
24
25
26
27
28
29
30
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 22

def create_meeting(subject:, start_time:, end_time:, user_id: 'me', **)
  payload = {
    subject:       subject,
    startDateTime: start_time,
    endDateTime:   end_time
  }
  response = graph_connection(**).post("#{user_path(user_id)}/onlineMeetings", payload)
  { result: response.body }
end

#delete_meeting(meeting_id:, user_id: 'me') ⇒ Object



41
42
43
44
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 41

def delete_meeting(meeting_id:, user_id: 'me', **)
  response = graph_connection(**).delete("#{user_path(user_id)}/onlineMeetings/#{meeting_id}")
  { result: response.body }
end

#get_attendance_report(meeting_id:, report_id:, user_id: 'me') ⇒ Object



57
58
59
60
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 57

def get_attendance_report(meeting_id:, report_id:, user_id: 'me', **)
  response = graph_connection(**).get("#{user_path(user_id)}/onlineMeetings/#{meeting_id}/attendanceReports/#{report_id}")
  { result: response.body }
end

#get_meeting(meeting_id:, user_id: 'me') ⇒ Object



17
18
19
20
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 17

def get_meeting(meeting_id:, user_id: 'me', **)
  response = graph_connection(**).get("#{user_path(user_id)}/onlineMeetings/#{meeting_id}")
  { result: response.body }
end

#get_meeting_by_join_url(join_url:, user_id: 'me') ⇒ Object



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

def get_meeting_by_join_url(join_url:, user_id: 'me', **)
  params = { '$filter' => "joinWebUrl eq '#{join_url.gsub("'", "''")}'" }
  response = graph_connection(**).get("#{user_path(user_id)}/onlineMeetings", params)
  { result: response.body }
end

#list_attendance_reports(meeting_id:, user_id: 'me') ⇒ Object



52
53
54
55
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 52

def list_attendance_reports(meeting_id:, user_id: 'me', **)
  response = graph_connection(**).get("#{user_path(user_id)}/onlineMeetings/#{meeting_id}/attendanceReports")
  { result: response.body }
end

#list_meetings(user_id: 'me') ⇒ Object



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

def list_meetings(user_id: 'me', **)
  response = graph_connection(**).get("#{user_path(user_id)}/onlineMeetings")
  { result: response.body }
end

#update_meeting(meeting_id:, user_id: 'me', subject: nil, start_time: nil, end_time: nil) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/legion/extensions/microsoft_teams/runners/meetings.rb', line 32

def update_meeting(meeting_id:, user_id: 'me', subject: nil, start_time: nil, end_time: nil, **)
  payload = {}
  payload[:subject] = subject if subject
  payload[:startDateTime] = start_time if start_time
  payload[:endDateTime] = end_time if end_time
  response = graph_connection(**).patch("#{user_path(user_id)}/onlineMeetings/#{meeting_id}", payload)
  { result: response.body }
end