Retrospring/app/controllers/notifications_controller.rb

31 lines
890 B
Ruby
Raw Normal View History

2014-12-09 13:35:11 -08:00
class NotificationsController < ApplicationController
2020-04-18 16:45:50 -07:00
before_action :authenticate_user!
2014-12-12 08:54:13 -08:00
2014-12-09 13:35:11 -08:00
def index
2014-12-14 06:17:52 -08:00
@type = params[:type]
@notifications = cursored_notifications_for(type: @type, last_id: params[:last_id])
@notifications_last_id = @notifications.map(&:id).min
@more_data_available = !cursored_notifications_for(type: @type, last_id: @notifications_last_id, size: 1).count.zero?
2015-01-08 09:22:27 -08:00
respond_to do |format|
format.html
format.js
end
2014-12-09 13:35:11 -08:00
end
private
def cursored_notifications_for(type:, last_id:, size: nil)
cursor_params = { last_id: last_id, size: size }.compact
case type
when 'all'
Notification.cursored_for(current_user, **cursor_params)
when 'new'
Notification.cursored_for(current_user, new: true, **cursor_params)
else
Notification.cursored_for_type(current_user, type, **cursor_params)
end
end
2014-12-09 13:35:11 -08:00
end