Class: Waitmate::RoomsController

Inherits:
ApplicationController show all
Includes:
TargetValidation
Defined in:
app/controllers/waitmate/rooms_controller.rb

Instance Method Summary collapse

Methods included from TargetValidation

#valid_waiting_room_target?

Instance Method Details

#positionObject



26
27
28
29
30
31
32
33
34
# File 'app/controllers/waitmate/rooms_controller.rb', line 26

def position
  result = Ticket.verify(token: ticket_param, queue_name: queue_param, session_id: session.id.to_s)
  return render_position_json(position: nil, admitted: false) unless result.success?

  Store.heartbeat(queue_param, session.id.to_s)
  pos = Store.position(queue_param, session.id.to_s)

  render_position_json(position: pos, admitted: pos == 0)
end

#showObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'app/controllers/waitmate/rooms_controller.rb', line 9

def show
  pos = current_position
  return render_invalid if pos.nil?

  if pos == 0
    url = admission_url
    return redirect_to(url) if url
    return render_invalid
  end

  @position = pos
  @polling_interval = Waitmate.configuration.polling_interval
  @ticket = ticket_param
  @queue = queue_param
  @target = validated_target
end