forked from External/greenlight
47 lines
1.2 KiB
Ruby
47 lines
1.2 KiB
Ruby
class BbbController < ApplicationController
|
|
|
|
# GET /:resource/:id/join
|
|
def join
|
|
if ( params[:id].blank? )
|
|
render_response("missing_parameter", "meeting token was not included", :bad_request)
|
|
elsif ( params[:name].blank? )
|
|
render_response("missing_parameter", "user name was not included", :bad_request)
|
|
else
|
|
user = User.find_by username: params[:id]
|
|
|
|
options = if user
|
|
{
|
|
wait_for_moderator: true,
|
|
user_is_moderator: current_user == user
|
|
}
|
|
else
|
|
{}
|
|
end
|
|
options[:meeting_logout_url] = "#{request.base_url}/#{params[:resource]}/#{params[:id]}"
|
|
|
|
bbb_res = helpers.bbb_join_url(
|
|
params[:id],
|
|
params[:name],
|
|
options
|
|
)
|
|
|
|
|
|
if bbb_res[:returncode] && current_user && current_user == user
|
|
ActionCable.server.broadcast "moderator_#{user.username}_join_channel",
|
|
moderator: "joined"
|
|
end
|
|
|
|
render_response bbb_res[:messageKey], bbb_res[:message], bbb_res[:status], bbb_res[:response]
|
|
end
|
|
end
|
|
|
|
private
|
|
def render_response(messageKey, message, status, response={})
|
|
@messageKey = messageKey
|
|
@message = message
|
|
@status = status
|
|
@response = response
|
|
render status: @status
|
|
end
|
|
end
|