improvements to active meetings

This commit is contained in:
Josh
2017-07-04 11:52:35 -04:00
parent 44e2cb7027
commit 27f6076954
8 changed files with 162 additions and 39 deletions

View File

@ -287,14 +287,17 @@ class BbbController < ApplicationController
actioncable_event('create', params['id'], params['room_id'])
elsif eventName == "meeting_destroyed_event"
actioncable_event('destroy', params['id'], params['room_id'])
record_id = event['payload']['meeting_id'].split('-')[0]
rec_info = bbb_get_recordings({recordID: record_id})
rec_info = rec_info[:recordings].first
# Remove the webhook.
webhook_remove(rec_info[:metadata][:"gl-webhooks-callback-url"])
elsif eventName == "user_joined_message"
actioncable_event('join', params['id'], params['room_id'], event['payload']['user']['role'])
actioncable_event('join', params['id'], params['room_id'], event['payload']['user']['name'], event['payload']['user']['role'])
elsif eventName == "user_left_message"
actioncable_event('leave', params['id'], params['room_id'], event['payload']['user']['role'])
actioncable_event('leave', params['id'], params['room_id'], event['payload']['user']['name'], event['payload']['user']['role'])
else
logger.info "Callback event will not be treated. Event name: #{eventName}"
end
@ -302,11 +305,12 @@ class BbbController < ApplicationController
render head(:ok) && return
end
def actioncable_event(method, id, room_id, role = 'none')
def actioncable_event(method, id, room_id, user = 'none', role = 'none')
ActionCable.server.broadcast 'refresh_meetings',
method: method,
meeting: id,
room: room_id,
user: user,
role: role
end

View File

@ -34,14 +34,29 @@ class LandingController < ApplicationController
end
end
def send_data
render json: bbb.get_meetings
def send_meetings_data
render json: {active: bbb.get_meetings, waiting: WaitingList.waiting}
end
def wait_for_moderator
WaitingList.add(params[:room_id], params[:name], params[:id])
ActionCable.server.broadcast 'refresh_meetings',
method: 'waiting',
meeting: params[:id],
room: params[:room_id],
user: params[:name]
render layout: false
end
def no_longer_waiting
WaitingList.remove(params[:room_id], params[:name], params[:id])
ActionCable.server.broadcast 'refresh_meetings',
method: 'no_longer_waiting',
meeting: params[:id],
room: params[:room_id],
user: params[:name]
end
def session_status_refresh
@user = User.find_by(encrypted_id: params[:room_id])
if @user.nil?