diff options
Diffstat (limited to 'app/controllers/api/v1/timelines_controller.rb')
-rw-r--r-- | app/controllers/api/v1/timelines_controller.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/app/controllers/api/v1/timelines_controller.rb b/app/controllers/api/v1/timelines_controller.rb new file mode 100644 index 000000000..e5176dd4b --- /dev/null +++ b/app/controllers/api/v1/timelines_controller.rb @@ -0,0 +1,37 @@ +class Api::V1::TimelinesController < ApiController + before_action -> { doorkeeper_authorize! :read } + before_action :require_user!, only: [:home, :mentions] + + respond_to :json + + def home + @statuses = Feed.new(:home, current_account).get(20, params[:max_id], params[:since_id]).to_a + set_maps(@statuses) + render action: :index + end + + def mentions + @statuses = Feed.new(:mentions, current_account).get(20, params[:max_id], params[:since_id]).to_a + set_maps(@statuses) + render action: :index + end + + def public + @statuses = Status.as_public_timeline(current_account).paginate_by_max_id(20, params[:max_id], params[:since_id]).to_a + set_maps(@statuses) + render action: :index + end + + def tag + @tag = Tag.find_by(name: params[:id].downcase) + + if @tag.nil? + @statuses = [] + else + @statuses = Status.as_tag_timeline(@tag, current_account).paginate_by_max_id(20, params[:max_id], params[:since_id]).to_a + set_maps(@statuses) + end + + render action: :index + end +end |