Add a /api/v1/mutes/details route that just returns the array of mutes.

This commit is contained in:
Surinna Curtis 2017-09-02 12:24:58 -05:00 committed by aschmitz
parent 1fc0382d29
commit a81d3a2842
3 changed files with 33 additions and 8 deletions

View File

@ -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
@accounts.last.muted_by_ids.last
if params[:action] == "details"
@mutes.last.id
else
@accounts.last.muted_by_ids.last
end
end
def pagination_since_id
@accounts.first.muted_by_ids.first
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)

View File

@ -206,7 +206,11 @@ Rails.application.routes.draw do
resources :follows, only: [:create]
resources :media, only: [:create, :update]
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]

View File

@ -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