Class: Bigbluebutton::Api::RoomsController

Inherits:
ApplicationController
  • Object
show all
Includes:
BigbluebuttonRails::APIControllerMethods
Defined in:
app/controllers/bigbluebutton/api/rooms_controller.rb

Instance Method Summary collapse

Methods included from BigbluebuttonRails::APIControllerMethods

included

Instance Method Details

#indexObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/controllers/bigbluebutton/api/rooms_controller.rb', line 22

def index
  query = BigbluebuttonRoom

  # Search
  search_terms = map_search(params[:filter])
  query = query.search_by_terms(search_terms) unless search_terms.blank?

  # Sort
  sort_str = map_sort(params[:sort], 'name ASC', ['activity', 'name'])
  if sort_str.match(/activity/) # if requested activity ignore the rest
    activity_order = sort_str.match(/activity ASC/) ? 'DESC' : 'ASC' # yes, inverse logic!
    query = query.order_by_activity(activity_order)
  else
    query = query.order(sort_str)
  end

  # Limits and pagination
  limit, offset, page = map_pagination(params[:page], 10)
  query = query.limit(limit).offset(offset)
  @pagination_links = map_pagination_links(page)

  @rooms = query
  respond_with(@rooms)
end

#joinObject



51
52
53
54
55
56
57
58
59
60
61
# File 'app/controllers/bigbluebutton/api/rooms_controller.rb', line 51

def join
  return error_room_not_running unless check_is_running

  # map "meta[_-]" to "userdata-"
  options = params.select{ |k,v| k.match(/^meta[-_]/) }
  unless options.blank?
    options = options.map{ |k,v| { k.gsub(/^meta[-_]/, 'userdata-') => v } }.reduce(:merge)
  end

  @url = @room.parameterized_join_url(@user_name, @user_role, nil, options)
end

#runningObject



47
48
49
# File 'app/controllers/bigbluebutton/api/rooms_controller.rb', line 47

def running
  check_is_running
end