multi meeting rooms

This commit is contained in:
Zachary Chai
2017-01-27 15:44:24 -05:00
parent 0ce2a226a7
commit d67663fbf1
17 changed files with 123 additions and 66 deletions

View File

@ -42,11 +42,13 @@ class BbbController < ApplicationController
)
end
meeting_id = params[:room_id]
meeting_id = "#{params[:room_id]}-#{params[:id]}"
meeting_name = params[:id]
meeting_path = "#{params[:room_id]}/#{params[:id]}"
else
meeting_id = params[:id]
user = User.find_by encrypted_id: params[:id]
meeting_id = params[:id]
meeting_path = meeting_id
end
options = if user
@ -62,7 +64,7 @@ class BbbController < ApplicationController
}
end
base_url = "#{request.base_url}/#{params[:resource]}/#{meeting_id}"
base_url = "#{request.base_url}/#{params[:resource]}/#{meeting_path}"
options[:meeting_logout_url] = base_url
options[:hook_url] = "#{base_url}/callback"
@ -74,11 +76,11 @@ class BbbController < ApplicationController
# the user can join the meeting
if bbb_res[:returncode] && current_user && current_user == user
JoinMeetingJob.perform_later(meeting_id)
JoinMeetingJob.perform_later(user.encrypted_id, params[:id])
# user will be waiting for a moderator
else
NotifyUserWaitingJob.perform_later(meeting_id, params[:name])
NotifyUserWaitingJob.perform_later(user.encrypted_id, params[:id], params[:name])
end
render_bbb_response bbb_res, bbb_res[:response]
@ -103,9 +105,9 @@ class BbbController < ApplicationController
def end
load_and_authorize_room_owner!
bbb_res = bbb_end_meeting @user.encrypted_id
bbb_res = bbb_end_meeting "#{@user.encrypted_id}-#{params[:id]}"
if bbb_res[:returncode]
EndMeetingJob.perform_later(@user.encrypted_id)
EndMeetingJob.perform_later(@user.encrypted_id, params[:id])
end
render_bbb_response bbb_res
end
@ -114,7 +116,8 @@ class BbbController < ApplicationController
def recordings
load_room!
bbb_res = bbb_get_recordings @user.encrypted_id
# bbb_res = bbb_get_recordings "#{@user.encrypted_id}-#{params[:id]}"
bbb_res = bbb_get_recordings "#{@user.encrypted_id}"
render_bbb_response bbb_res, bbb_res[:recordings]
end
@ -141,7 +144,7 @@ class BbbController < ApplicationController
private
def load_room!
@user = User.find_by encrypted_id: params[:id]
@user = User.find_by encrypted_id: params[:room_id]
if !@user
render head(:not_found) && return
end
@ -158,7 +161,7 @@ class BbbController < ApplicationController
def authorize_recording_owner!
load_and_authorize_room_owner!
recordings = bbb_get_recordings(params[:id])[:recordings]
recordings = bbb_get_recordings(params[:room_id])[:recordings]
recordings.each do |recording|
if recording[:recordID] == params[:record_id]
return true

View File

@ -35,12 +35,13 @@ class LandingController < ApplicationController
end
def session_status_refresh
@user = User.find_by(encrypted_id: params[:id])
@user = User.find_by(encrypted_id: params[:room_id])
if @user.nil?
render head(:not_found) && return
end
@meeting_running = bbb_get_meeting_info(@user.encrypted_id)[:returncode]
@meeting_id = params[:id]
@meeting_running = bbb_get_meeting_info("#{@user.encrypted_id}-#{params[:id]}")[:returncode]
render layout: false
end
@ -65,13 +66,15 @@ class LandingController < ApplicationController
def render_room
params[:action] = 'rooms'
@user = User.find_by(encrypted_id: params[:id])
@user = User.find_by(encrypted_id: params[:room_id] || params[:id])
if @user.nil?
redirect_to root_path
return
end
@meeting_running = bbb_get_meeting_info(@user.encrypted_id)[:returncode]
@meeting_id = params[:id]
@meeting_running = bbb_get_meeting_info("#{@user.encrypted_id}-#{@meeting_id}")[:returncode]
@main_room = @meeting_id.blank? || @meeting_id == @user.encrypted_id
render :action => 'rooms'
end