Add a /api/v1/mutes/details route that just returns the array of mutes.
This commit is contained in:
		| @@ -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) | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user