class UserActionsController < ApplicationController def index params.require(:username) params.permit(:filter, :offset) per_chunk = 30 user = fetch_user_from_params(include_inactive: current_user.try(:staff?)) opts = { user_id: user.id, user: user, offset: params[:offset].to_i, limit: per_chunk, action_types: (params[:filter] || "").split(",").map(&:to_i), guardian: guardian, ignore_private_messages: params[:filter] ? false : true } # Pending is restricted stream = if opts[:action_types].include?(UserAction::PENDING) guardian.ensure_can_see_notifications!(user) UserAction.stream_queued(opts) else UserAction.stream(opts) end render_serialized(stream, UserActionSerializer, root: 'user_actions') end def show params.require(:id) render_serialized(UserAction.stream_item(params[:id], guardian), UserActionSerializer) end def private_messages # DO NOT REMOVE # TODO should preload messages to avoid extra http req end end