Class: SolidWebUi::Cable::ChannelsController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- SolidWebUi::Cable::ChannelsController
- Defined in:
- app/controllers/solid_web_ui/cable/channels_controller.rb
Instance Method Summary collapse
Instance Method Details
#index ⇒ Object
5 6 7 8 9 10 11 |
# File 'app/controllers/solid_web_ui/cable/channels_controller.rb', line 5 def index counts = SolidCable::Message.group(:channel, :channel_hash).count last_seen = SolidCable::Message.group(:channel).maximum(:created_at) @channels = counts .map { |(channel, hash), count| { name: channel, hash: hash, count: count, last: last_seen[channel] } } .sort_by { |row| -row[:count] } end |
#show ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'app/controllers/solid_web_ui/cable/channels_controller.rb', line 13 def show scope = SolidCable::Message.where(channel_hash: params[:channel_hash]) @name = scope.limit(1).pick(:channel) raise ActiveRecord::RecordNotFound if @name.nil? @channel_hash = params[:channel_hash] @count = scope.count @first = scope.minimum(:created_at) @last = scope.maximum(:created_at) @paginator = SolidWebUi::Paginator.new(scope.order(id: :desc), page: params[:page], per_page: per_page) @messages = @paginator.records end |