forked from treehouse/mastodon
Add a /api/v1/mutes/details route that just returns the array of mutes.
parent
30b5254a5d
commit
70592cdaba
|
@ -8,10 +8,15 @@ class Api::V1::MutesController < Api::BaseController
|
|||
respond_to :json
|
||||
|
||||
def index
|
||||
@accounts = load_accounts
|
||||
@data = @accounts = load_accounts
|
||||
render json: @accounts, each_serializer: REST::AccountSerializer
|
||||
end
|
||||
|
||||
def details
|
||||
@data = @mutes = paginated_mutes
|
||||
render json: @mutes
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_accounts
|
||||
|
@ -36,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 @accounts.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
|
||||
if params[:action] == "details"
|
||||
@mutes.last.id
|
||||
else
|
||||
@accounts.last.muted_by_ids.last
|
||||
end
|
||||
end
|
||||
|
||||
def pagination_since_id
|
||||
if params[:action] == "details"
|
||||
@mutes.first.id
|
||||
else
|
||||
@accounts.first.muted_by_ids.first
|
||||
end
|
||||
end
|
||||
|
||||
def records_continue?
|
||||
@accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
|
||||
@data.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
|
||||
end
|
||||
|
||||
def pagination_params(core_params)
|
||||
|
|
|
@ -191,7 +191,11 @@ Rails.application.routes.draw do
|
|||
resources :media, only: [:create]
|
||||
resources :apps, only: [:create]
|
||||
resources :blocks, only: [:index]
|
||||
resources :mutes, only: [:index]
|
||||
resources :mutes, only: [:index] do
|
||||
collection do
|
||||
get 'details'
|
||||
end
|
||||
end
|
||||
resources :favourites, only: [:index]
|
||||
resources :reports, only: [:index, :create]
|
||||
|
||||
|
|
|
@ -18,4 +18,12 @@ RSpec.describe Api::V1::MutesController, type: :controller do
|
|||
expect(response).to have_http_status(:success)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #details' do
|
||||
it 'returns http success' do
|
||||
get :details, params: { limit: 1 }
|
||||
|
||||
expect(response).to have_http_status(:success)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue