From 9aecc0f48a046e0a05b8ca69511f8b72756fb431 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 8 Nov 2016 23:22:44 +0100 Subject: Move timelines API from statuses to its own controller, add a check for resources that require a user context vs those that don't (such as public timeline) /api/v1/statuses/public -> /api/v1/timelines/public /api/v1/statuses/home -> /api/v1/timelines/home /api/v1/statuses/mentions -> /api/v1/timelines/mentions /api/v1/statuses/tag/:tag -> /api/v1/timelines/tag/:tag --- app/controllers/api/v1/timelines_controller.rb | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 app/controllers/api/v1/timelines_controller.rb (limited to 'app/controllers/api/v1/timelines_controller.rb') 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 -- cgit