forked from External/greenlight
refactor bbb helper and implement wait for mod
This commit is contained in:
@ -1,33 +1,40 @@
|
||||
class BbbController < ApplicationController
|
||||
|
||||
# GET /join
|
||||
# GET /join.json
|
||||
# GET /:resource/:id/join
|
||||
def join
|
||||
if ( !params.has_key?(:id) )
|
||||
if ( !params[:id] )
|
||||
render_response("missing_parameter", "meeting token was not included", :bad_request)
|
||||
elsif ( !params.has_key?(:name) )
|
||||
elsif ( !params[:name] )
|
||||
render_response("missing_parameter", "user name was not included", :bad_request)
|
||||
else
|
||||
bbb_join_url = helpers.bbb_join_url(params[:id], false, params[:name], false, "#{request.base_url}/#{params[:resource]}/#{params[:id]}")
|
||||
if bbb_join_url[:returncode]
|
||||
logger.info "#Execute the redirect"
|
||||
render_response("ok", "execute the redirect", :ok, {:join_url => bbb_join_url[:join_url]})
|
||||
user = User.find_by username: params[:id]
|
||||
|
||||
options = if user
|
||||
{
|
||||
wait_for_moderator: true,
|
||||
user_is_moderator: current_user == user
|
||||
}
|
||||
else
|
||||
render_response("bigbluebutton_error", "join url could not be created", :internal_server_error)
|
||||
{}
|
||||
end
|
||||
options[:meeting_logout_url] = "#{request.base_url}/#{params[:resource]}/#{params[:id]}"
|
||||
|
||||
bbb_res = helpers.bbb_join_url(
|
||||
params[:id],
|
||||
params[:name],
|
||||
options
|
||||
)
|
||||
|
||||
render_response bbb_res[:messageKey], bbb_res[:message], bbb_res[:status], bbb_res[:response]
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def render_response(messageKey, message, status, response={})
|
||||
respond_to do |format|
|
||||
if (status == :ok)
|
||||
format.html { render :template => "bbb/join" }
|
||||
format.json { render :json => { :messageKey => messageKey, :message => message, :status => status, :response => response }, :status => status }
|
||||
else
|
||||
format.html { render :template => "errors/error" }
|
||||
format.json { render :json => { :messageKey => messageKey, :message => message, :status => status, :response => response }, :status => status }
|
||||
end
|
||||
end
|
||||
@messageKey = messageKey
|
||||
@message = message
|
||||
@status = status
|
||||
@response = response
|
||||
render status: @status && return
|
||||
end
|
||||
end
|
||||
|
@ -18,6 +18,7 @@ class LandingController < ApplicationController
|
||||
private
|
||||
|
||||
def render_meeting
|
||||
@meeting_id = params[:id]
|
||||
params[:action] = 'meetings'
|
||||
render :action => 'meeting'
|
||||
end
|
||||
|
Reference in New Issue
Block a user