forked from External/greenlight
		
	test bbb controller
This commit is contained in:
		@@ -21,7 +21,6 @@ class BbbController < ApplicationController
 | 
			
		||||
  before_action :load_and_authorize_room_owner!, only: [:end]
 | 
			
		||||
 | 
			
		||||
  skip_before_action :verify_authenticity_token, only: :callback
 | 
			
		||||
  before_action :validate_checksum, only: :callback
 | 
			
		||||
 | 
			
		||||
  # GET /:resource/:id/join
 | 
			
		||||
  # GET /:resource/:room_id/:id/join
 | 
			
		||||
@@ -104,9 +103,13 @@ class BbbController < ApplicationController
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # POST /:resource/:id/callback
 | 
			
		||||
  # POST /:resource/:room_id/:id/callback
 | 
			
		||||
  # Endpoint for webhook calls from BigBlueButton
 | 
			
		||||
  def callback
 | 
			
		||||
    # respond with 200 anyway so BigBlueButton knows the hook call was ok
 | 
			
		||||
    # but abort execution
 | 
			
		||||
    head(:ok) && return unless validate_checksum
 | 
			
		||||
 | 
			
		||||
    begin
 | 
			
		||||
      data = JSON.parse(read_body(request))
 | 
			
		||||
      treat_callback_event(data["event"])
 | 
			
		||||
@@ -114,11 +117,10 @@ class BbbController < ApplicationController
 | 
			
		||||
      logger.error "Error parsing webhook data. Data: #{data}, exception: #{e.inspect}"
 | 
			
		||||
 | 
			
		||||
      # respond with 200 anyway so BigBlueButton knows the hook call was ok
 | 
			
		||||
      render head(:ok)
 | 
			
		||||
      head(:ok) && return
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # DELETE /rooms/:id/end
 | 
			
		||||
  # DELETE /rooms/:room_id/:id/end
 | 
			
		||||
  def end
 | 
			
		||||
    load_and_authorize_room_owner!
 | 
			
		||||
@@ -130,7 +132,7 @@ class BbbController < ApplicationController
 | 
			
		||||
    render_bbb_response bbb_res
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # GET /rooms/:id/recordings
 | 
			
		||||
  # GET /rooms/:room_id/recordings
 | 
			
		||||
  # GET /rooms/:room_id/:id/recordings
 | 
			
		||||
  def recordings
 | 
			
		||||
    load_room!
 | 
			
		||||
@@ -144,7 +146,7 @@ class BbbController < ApplicationController
 | 
			
		||||
    render_bbb_response bbb_res, bbb_res[:recordings]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # PATCH /rooms/:id/recordings/:record_id
 | 
			
		||||
  # PATCH /rooms/:room_id/recordings/:record_id
 | 
			
		||||
  # PATCH /rooms/:room_id/:id/recordings/:record_id
 | 
			
		||||
  def update_recordings
 | 
			
		||||
    published = params[:published] == 'true'
 | 
			
		||||
@@ -156,7 +158,7 @@ class BbbController < ApplicationController
 | 
			
		||||
    render_bbb_response bbb_res
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # DELETE /rooms/:id/recordings/:record_id
 | 
			
		||||
  # DELETE /rooms/:room_id/recordings/:record_id
 | 
			
		||||
  # DELETE /rooms/:room_id/:id/recordings/:record_id
 | 
			
		||||
  def delete_recordings
 | 
			
		||||
    recording = bbb_get_recordings({recordID: params[:record_id]})[:recordings].first
 | 
			
		||||
@@ -259,10 +261,7 @@ class BbbController < ApplicationController
 | 
			
		||||
 | 
			
		||||
    if calculated_checksum != checksum
 | 
			
		||||
      logger.error "Checksum did not match. Calculated: #{calculated_checksum}, received: #{checksum}"
 | 
			
		||||
 | 
			
		||||
      # respond with 200 anyway so BigBlueButton knows the hook call was ok
 | 
			
		||||
      # but abort execution
 | 
			
		||||
      render head(:ok) && return
 | 
			
		||||
      false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user