about summary refs log tree commit diff
path: root/app/controllers/api/v1/lists/accounts_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/api/v1/lists/accounts_controller.rb')
-rw-r--r--app/controllers/api/v1/lists/accounts_controller.rb18
1 files changed, 17 insertions, 1 deletions
diff --git a/app/controllers/api/v1/lists/accounts_controller.rb b/app/controllers/api/v1/lists/accounts_controller.rb
index 40c485e8d..c29c73b3e 100644
--- a/app/controllers/api/v1/lists/accounts_controller.rb
+++ b/app/controllers/api/v1/lists/accounts_controller.rb
@@ -10,7 +10,7 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   after_action :insert_pagination_headers, only: :show
 
   def show
-    @accounts = @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
+    @accounts = load_accounts
     render json: @accounts, each_serializer: REST::AccountSerializer
   end
 
@@ -35,6 +35,14 @@ class Api::V1::Lists::AccountsController < Api::BaseController
     @list = List.where(account: current_account).find(params[:list_id])
   end
 
+  def load_accounts
+    if unlimited?
+      @list.accounts.all
+    else
+      @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
+    end
+  end
+
   def list_accounts
     Account.find(account_ids)
   end
@@ -52,12 +60,16 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   end
 
   def next_path
+    return if unlimited?
+
     if records_continue?
       api_v1_list_accounts_url pagination_params(max_id: pagination_max_id)
     end
   end
 
   def prev_path
+    return if unlimited?
+
     unless @accounts.empty?
       api_v1_list_accounts_url pagination_params(since_id: pagination_since_id)
     end
@@ -78,4 +90,8 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   def pagination_params(core_params)
     params.permit(:limit).merge(core_params)
   end
+
+  def unlimited?
+    params[:limit] == '0'
+  end
 end