forked from External/greenlight
fix issue where webhooks were not always removed
This commit is contained in:
parent
2d7ab0006c
commit
3bc31048f4
|
@ -286,26 +286,29 @@ class BbbController < ApplicationController
|
||||||
end
|
end
|
||||||
elsif eventName == "meeting_created_message"
|
elsif eventName == "meeting_created_message"
|
||||||
# Fire an Actioncable event that updates _previously_joined for the client.
|
# Fire an Actioncable event that updates _previously_joined for the client.
|
||||||
actioncable_event('create', params['id'], params['room_id'])
|
actioncable_event('create', params[:id], params[:room_id])
|
||||||
elsif eventName == "meeting_destroyed_event"
|
elsif eventName == "meeting_destroyed_event"
|
||||||
actioncable_event('destroy', params['id'], params['room_id'])
|
actioncable_event('destroy', params[:id], params[:room_id])
|
||||||
|
|
||||||
record_id = event['payload']['meeting_id'].split('-')[0]
|
# Since the meeting is destroyed we have no way get the callback url to remove the meeting, so we must build it.
|
||||||
rec_info = bbb_get_recordings({recordID: record_id})
|
remove_url = build_callback_url(params[:id], params[:room_id])
|
||||||
rec_info = rec_info[:recordings].first
|
|
||||||
|
|
||||||
# Remove the webhook.
|
# Remove webhook for the meeting.
|
||||||
webhook_remove(rec_info[:metadata][:"gl-webhooks-callback-url"])
|
webhook_remove(remove_url)
|
||||||
elsif eventName == "user_joined_message"
|
elsif eventName == "user_joined_message"
|
||||||
actioncable_event('join', params['id'], params['room_id'], event['payload']['user']['name'], event['payload']['user']['role'])
|
actioncable_event('join', params[:id], params[:room_id], event['payload']['user']['name'], event['payload']['user']['role'])
|
||||||
elsif eventName == "user_left_message"
|
elsif eventName == "user_left_message"
|
||||||
actioncable_event('leave', params['id'], params['room_id'], event['payload']['user']['name'], event['payload']['user']['role'])
|
actioncable_event('leave', params[:id], params[:room_id], event['payload']['user']['name'], event['payload']['user']['role'])
|
||||||
else
|
else
|
||||||
logger.info "Callback event will not be treated. Event name: #{eventName}"
|
logger.info "Callback event will not be treated. Event name: #{eventName}"
|
||||||
end
|
end
|
||||||
|
|
||||||
render head(:ok) && return
|
render head(:ok) && return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def build_callback_url(id, room_id)
|
||||||
|
"#{request.base_url}#{relative_root}/rooms/#{room_id}/#{URI.encode(id)}/callback"
|
||||||
|
end
|
||||||
|
|
||||||
def actioncable_event(method, id, room_id, user = 'none', role = 'none')
|
def actioncable_event(method, id, room_id, user = 'none', role = 'none')
|
||||||
ActionCable.server.broadcast 'refresh_meetings',
|
ActionCable.server.broadcast 'refresh_meetings',
|
||||||
|
|
Loading…
Reference in New Issue