Newer
Older
# frozen_string_literal: true
# Copyright (c) 2010-2011, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3 or later. See
# the COPYRIGHT file.
class StreamsController < ApplicationController
before_action :authenticate_user!, except: :public
before_action :save_selected_aspects, :only => :aspects
layout proc { request.format == :mobile ? "application" : "with_header" }
respond_to :html,
:mobile,
:json
def aspects
aspect_ids = (session[:a_ids] || [])
@stream = Stream::Aspect.new(current_user, aspect_ids,
:max_time => max_time)
stream_responder
end
def public
stream_responder(Stream::Public)
end
def activity
stream_responder(Stream::Activity)
if current_user.getting_started
gon.preloads[:getting_started] = true
inviter = current_user.invited_by.try(:person)
gon.preloads[:mentioned_person] = {name: inviter.name, handle: inviter.diaspora_handle} if inviter
end
end
def commented
stream_responder(Stream::Comments)
end
def liked
stream_responder(Stream::Likes)
end
def mentioned
stream_responder(Stream::Mention)
end
def followed_tags
stream_responder(Stream::FollowedTag)
end
private
def stream_responder(stream_klass=nil)
if stream_klass.present?
@stream ||= stream_klass.new(current_user, :max_time => max_time)
end
respond_with do |format|
format.html { render 'streams/main_stream' }
format.mobile { render 'streams/main_stream' }
Dennis Collinson
a validé
format.json { render :json => @stream.stream_posts.map {|p| LastThreeCommentsDecorator.new(PostPresenter.new(p, current_user)) }}