1 # frozen_string_literal: true
3 class Api
::V1::MutesController < Api
::BaseController
4 before_action
-> { doorkeeper_authorize!
:follow, :'read:mutes' }
5 before_action
:require_user!
6 after_action
:insert_pagination_headers
11 @data = @accounts = load_accounts
12 render json
: @accounts, each_serializer
: REST
::AccountSerializer
16 @data = @mutes = load_mutes
17 render json
: @mutes, each_serializer
: REST
::MuteSerializer
23 paginated_mutes
.map(&:target_account)
27 paginated_mutes
.includes(:account, :target_account).to_a
31 @paginated_mutes ||= Mute
.eager_load(:target_account)
32 .where(account
: current_account
)
34 limit_param(DEFAULT_ACCOUNTS_LIMIT
),
40 def insert_pagination_headers
41 set_pagination_headers(next_path
, prev_path
)
46 url_for
pagination_params(max_id
: pagination_max_id
)
52 url_for
pagination_params(since_id
: pagination_since_id
)
57 if params
[:action] == "details"
60 paginated_mutes
.last
.id
64 def pagination_since_id
65 if params
[:action] == "details"
68 paginated_mutes
.first
.id
73 @data.size
== limit_param(DEFAULT_ACCOUNTS_LIMIT
)
76 def pagination_params(core_params
)
77 params
.slice(:limit).permit(:limit).merge(core_params
)