forked from External/greenlight
add recordings api actions
This commit is contained in:
@ -7,6 +7,10 @@ module BbbHelper
|
||||
Rails.application.secrets[:bbb_secret]
|
||||
end
|
||||
|
||||
def bbb
|
||||
@bbb ||= BigBlueButton::BigBlueButtonApi.new(bbb_endpoint + "api", bbb_secret, "0.8", true)
|
||||
end
|
||||
|
||||
def random_password(length)
|
||||
o = [('a'..'z'), ('A'..'Z')].map { |i| i.to_a }.flatten
|
||||
password = (0...length).map { o[rand(o.length)] }.join
|
||||
@ -19,7 +23,6 @@ module BbbHelper
|
||||
options[:wait_for_moderator] ||= false
|
||||
options[:meeting_logout_url] ||= nil
|
||||
|
||||
bbb ||= BigBlueButton::BigBlueButtonApi.new(bbb_endpoint + "api", bbb_secret, "0.8", true)
|
||||
if !bbb
|
||||
return call_invalid_res
|
||||
else
|
||||
@ -41,8 +44,7 @@ module BbbHelper
|
||||
logout_url = options[:meeting_logout_url] || "#{request.base_url}"
|
||||
moderator_password = random_password(12)
|
||||
viewer_password = random_password(12)
|
||||
meeting_options = {:record => options[:meeting_recorded].to_s, :logoutURL => logout_url, :moderatorPW => moderator_password, :attendeePW => viewer_password }
|
||||
|
||||
meeting_options = {record: options[:meeting_recorded].to_s, logoutURL: logout_url, moderatorPW: moderator_password, attendeePW: viewer_password}
|
||||
# Create the meeting
|
||||
bbb.create_meeting(meeting_token, meeting_id, meeting_options)
|
||||
|
||||
@ -65,6 +67,34 @@ module BbbHelper
|
||||
end
|
||||
end
|
||||
|
||||
def bbb_get_recordings(meeting_token)
|
||||
meeting_id = (Digest::SHA1.hexdigest(Rails.application.secrets[:secret_key_base]+meeting_token)).to_s
|
||||
bbb_safe_execute :get_recordings, meetingID: meeting_id
|
||||
end
|
||||
|
||||
def bbb_update_recordings(id, published)
|
||||
bbb_safe_execute :publish_recordings, id, published
|
||||
end
|
||||
|
||||
def bbb_delete_recordings(id)
|
||||
bbb_safe_execute :delete_recordings, id
|
||||
end
|
||||
|
||||
# method must be a symbol of the method's name
|
||||
def bbb_safe_execute(method, *args)
|
||||
if !bbb
|
||||
return call_invalid_res
|
||||
else
|
||||
begin
|
||||
response_data = bbb.send(method, *args)
|
||||
response_data[:status] = :ok
|
||||
rescue BigBlueButton::BigBlueButtonException => exc
|
||||
response_data = bbb_exception_res exc
|
||||
end
|
||||
end
|
||||
response_data
|
||||
end
|
||||
|
||||
def success_res(join_url)
|
||||
{
|
||||
returncode: true,
|
||||
@ -94,4 +124,13 @@ module BbbHelper
|
||||
status: :internal_server_error
|
||||
}
|
||||
end
|
||||
|
||||
def bbb_exception_res(exc)
|
||||
{
|
||||
returncode: false,
|
||||
messageKey: 'BBB'+exc.key.capitalize.underscore,
|
||||
message: exc.message,
|
||||
status: :internal_server_error
|
||||
}
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user