diaspora/app/controllers/api/v0/streams_controller.rb
2018-11-01 13:56:18 +01:00

55 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module Api
module V0
class StreamsController < Api::V0::BaseController
before_action do
require_access_token %w[read]
end
def aspects
aspect_ids = (params[: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)
end
def multi
stream_responder(Stream::Multi)
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
render json: @stream.stream_posts.map {|p| LastThreeCommentsDecorator.new(PostPresenter.new(p, current_user)) }
end
end
end
end