Merge remote-tracking branch 'tootsuite/master' into merge-upstream
This commit is contained in:
		
							
								
								
									
										20
									
								
								app/controllers/api/v1/accounts/lists_controller.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/controllers/api/v1/accounts/lists_controller.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::Accounts::ListsController < Api::BaseController
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :read }
 | 
			
		||||
  before_action :require_user!
 | 
			
		||||
  before_action :set_account
 | 
			
		||||
 | 
			
		||||
  respond_to :json
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    @lists = @account.lists.where(account: current_account)
 | 
			
		||||
    render json: @lists, each_serializer: REST::ListSerializer
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def set_account
 | 
			
		||||
    @account = Account.find(params[:account_id])
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
@@ -1,18 +1,14 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class Api::V1::ListsController < Api::BaseController
 | 
			
		||||
  LISTS_LIMIT = 50
 | 
			
		||||
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :read },    only: [:index, :show]
 | 
			
		||||
  before_action -> { doorkeeper_authorize! :write }, except: [:index, :show]
 | 
			
		||||
 | 
			
		||||
  before_action :require_user!
 | 
			
		||||
  before_action :set_list, except: [:index, :create]
 | 
			
		||||
 | 
			
		||||
  after_action :insert_pagination_headers, only: :index
 | 
			
		||||
 | 
			
		||||
  def index
 | 
			
		||||
    @lists = List.where(account: current_account).paginate_by_max_id(limit_param(LISTS_LIMIT), params[:max_id], params[:since_id])
 | 
			
		||||
    @lists = List.where(account: current_account).all
 | 
			
		||||
    render json: @lists, each_serializer: REST::ListSerializer
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@@ -44,36 +40,4 @@ class Api::V1::ListsController < Api::BaseController
 | 
			
		||||
  def list_params
 | 
			
		||||
    params.permit(:title)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def insert_pagination_headers
 | 
			
		||||
    set_pagination_headers(next_path, prev_path)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def next_path
 | 
			
		||||
    if records_continue?
 | 
			
		||||
      api_v1_lists_url pagination_params(max_id: pagination_max_id)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def prev_path
 | 
			
		||||
    unless @lists.empty?
 | 
			
		||||
      api_v1_lists_url pagination_params(since_id: pagination_since_id)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def pagination_max_id
 | 
			
		||||
    @lists.last.id
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def pagination_since_id
 | 
			
		||||
    @lists.first.id
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def records_continue?
 | 
			
		||||
    @lists.size == limit_param(LISTS_LIMIT)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def pagination_params(core_params)
 | 
			
		||||
    params.permit(:limit).merge(core_params)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user