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
This commit is contained in:
		
					parent
					
						
							
								86574ea524
							
						
					
				
			
			
				commit
				
					
						9aecc0f48a
					
				
			
		
					 12 changed files with 170 additions and 87 deletions
				
			
		|  | @ -1,8 +1,9 @@ | |||
| class Api::V1::AccountsController < ApiController | ||||
|   before_action -> { doorkeeper_authorize! :read }, except: [:follow, :unfollow, :block, :unblock] | ||||
|   before_action -> { doorkeeper_authorize! :follow }, only: [:follow, :unfollow, :block, :unblock] | ||||
| 
 | ||||
|   before_action :require_user!, except: [:show, :following, :followers, :statuses] | ||||
|   before_action :set_account, except: [:verify_credentials, :suggestions] | ||||
| 
 | ||||
|   respond_to    :json | ||||
| 
 | ||||
|   def show | ||||
|  |  | |||
|  | @ -1,5 +1,7 @@ | |||
| class Api::V1::FollowsController < ApiController | ||||
|   before_action -> { doorkeeper_authorize! :follow } | ||||
|   before_action :require_user! | ||||
| 
 | ||||
|   respond_to    :json | ||||
| 
 | ||||
|   def create | ||||
|  |  | |||
|  | @ -1,5 +1,7 @@ | |||
| class Api::V1::MediaController < ApiController | ||||
|   before_action -> { doorkeeper_authorize! :write } | ||||
|   before_action :require_user! | ||||
| 
 | ||||
|   respond_to    :json | ||||
| 
 | ||||
|   def create | ||||
|  |  | |||
|  | @ -1,8 +1,8 @@ | |||
| class Api::V1::StatusesController < ApiController | ||||
|   before_action -> { doorkeeper_authorize! :read }, except: [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite] | ||||
|   before_action -> { doorkeeper_authorize! :write }, only:  [:create, :destroy, :reblog, :unreblog, :favourite, :unfavourite] | ||||
| 
 | ||||
|   before_action :set_status, only: [:show, :context, :reblogged_by, :favourited_by] | ||||
|   before_action :require_user!, except: [:show, :context, :reblogged_by, :favourited_by] | ||||
|   before_action :set_status, only:      [:show, :context, :reblogged_by, :favourited_by] | ||||
| 
 | ||||
|   respond_to :json | ||||
| 
 | ||||
|  | @ -56,37 +56,6 @@ class Api::V1::StatusesController < ApiController | |||
|     render action: :show | ||||
|   end | ||||
| 
 | ||||
|   def home | ||||
|     @statuses = Feed.new(:home, current_user.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_user.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_user.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_user.account).paginate_by_max_id(20, params[:max_id], params[:since_id]).to_a | ||||
|       set_maps(@statuses) | ||||
|     end | ||||
| 
 | ||||
|     render action: :index | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def set_status | ||||
|  |  | |||
							
								
								
									
										37
									
								
								app/controllers/api/v1/timelines_controller.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								app/controllers/api/v1/timelines_controller.rb
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue