diff options
Diffstat (limited to 'app/controllers/api/v1/mutes_controller.rb')
-rw-r--r-- | app/controllers/api/v1/mutes_controller.rb | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/app/controllers/api/v1/mutes_controller.rb b/app/controllers/api/v1/mutes_controller.rb index 65439fe9b..5dc047b43 100644 --- a/app/controllers/api/v1/mutes_controller.rb +++ b/app/controllers/api/v1/mutes_controller.rb @@ -6,16 +6,25 @@ class Api::V1::MutesController < Api::BaseController after_action :insert_pagination_headers def index - @accounts = load_accounts + @data = @accounts = load_accounts render json: @accounts, each_serializer: REST::AccountSerializer end + def details + @data = @mutes = load_mutes + render json: @mutes, each_serializer: REST::MuteSerializer + end + private def load_accounts paginated_mutes.map(&:target_account) end + def load_mutes + paginated_mutes.includes(:account, :target_account).to_a + end + def paginated_mutes @paginated_mutes ||= Mute.eager_load(:target_account) .where(account: current_account) @@ -32,26 +41,34 @@ class Api::V1::MutesController < Api::BaseController def next_path if records_continue? - api_v1_mutes_url pagination_params(max_id: pagination_max_id) + url_for pagination_params(max_id: pagination_max_id) end end def prev_path - unless paginated_mutes.empty? - api_v1_mutes_url pagination_params(since_id: pagination_since_id) + unless @data.empty? + url_for pagination_params(since_id: pagination_since_id) end end def pagination_max_id - paginated_mutes.last.id + if params[:action] == "details" + @mutes.last.id + else + paginated_mutes.last.id + end end def pagination_since_id - paginated_mutes.first.id + if params[:action] == "details" + @mutes.first.id + else + paginated_mutes.first.id + end end def records_continue? - paginated_mutes.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) + @data.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) end def pagination_params(core_params) |