refactor bbb helper and implement wait for mod

This commit is contained in:
Zachary Chai
2016-10-26 13:41:55 -04:00
parent dadaa52387
commit 3aeef0a4cf
9 changed files with 98 additions and 37 deletions

View File

@ -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

View File

@ -18,6 +18,7 @@ class LandingController < ApplicationController
private
def render_meeting
@meeting_id = params[:id]
params[:action] = 'meetings'
render :action => 'meeting'
end