forked from External/greenlight
improvements to active meetings
This commit is contained in:
@ -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
|
||||
|
||||
|
@ -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?
|
||||
|
Reference in New Issue
Block a user