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