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
|
respond_to :json
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@accounts = load_accounts
|
@data = @accounts = load_accounts
|
||||||
render json: @accounts, each_serializer: REST::AccountSerializer
|
render json: @accounts, each_serializer: REST::AccountSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def details
|
||||||
|
@data = @mutes = paginated_mutes
|
||||||
|
render json: @mutes
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def load_accounts
|
def load_accounts
|
||||||
|
@ -36,26 +41,34 @@ class Api::V1::MutesController < Api::BaseController
|
||||||
|
|
||||||
def next_path
|
def next_path
|
||||||
if records_continue?
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
def prev_path
|
def prev_path
|
||||||
unless @accounts.empty?
|
unless@data.empty?
|
||||||
api_v1_mutes_url pagination_params(since_id: pagination_since_id)
|
url_for pagination_params(since_id: pagination_since_id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def pagination_max_id
|
def pagination_max_id
|
||||||
|
if params[:action] == "details"
|
||||||
|
@mutes.last.id
|
||||||
|
else
|
||||||
@accounts.last.muted_by_ids.last
|
@accounts.last.muted_by_ids.last
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def pagination_since_id
|
def pagination_since_id
|
||||||
|
if params[:action] == "details"
|
||||||
|
@mutes.first.id
|
||||||
|
else
|
||||||
@accounts.first.muted_by_ids.first
|
@accounts.first.muted_by_ids.first
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def records_continue?
|
def records_continue?
|
||||||
@accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
|
@data.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pagination_params(core_params)
|
def pagination_params(core_params)
|
||||||
|
|
|
@ -191,7 +191,11 @@ Rails.application.routes.draw do
|
||||||
resources :media, only: [:create]
|
resources :media, only: [:create]
|
||||||
resources :apps, only: [:create]
|
resources :apps, only: [:create]
|
||||||
resources :blocks, only: [:index]
|
resources :blocks, only: [:index]
|
||||||
resources :mutes, only: [:index]
|
resources :mutes, only: [:index] do
|
||||||
|
collection do
|
||||||
|
get 'details'
|
||||||
|
end
|
||||||
|
end
|
||||||
resources :favourites, only: [:index]
|
resources :favourites, only: [:index]
|
||||||
resources :reports, only: [:index, :create]
|
resources :reports, only: [:index, :create]
|
||||||
|
|
||||||
|
|
|
@ -18,4 +18,12 @@ RSpec.describe Api::V1::MutesController, type: :controller do
|
||||||
expect(response).to have_http_status(:success)
|
expect(response).to have_http_status(:success)
|
||||||
end
|
end
|
||||||
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
|
end
|
||||||
|
|
Loading…
Reference in New Issue