From 90c8175cb02dbc0acd26090f46d8cae3b7509bec Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Sun, 21 May 2017 20:32:13 +0900 Subject: [PATCH] Fix mutes_controller error and incorrect statuses_controller report (#3202) This commit fixes a regression in commit 9d32e7f6d5315425756464dd26a84edd267da15d. --- app/controllers/api/v1/mutes_controller.rb | 8 ++++---- app/controllers/api/v1/statuses_controller.rb | 12 ++++++------ app/models/concerns/account_interactions.rb | 2 ++ 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/controllers/api/v1/mutes_controller.rb b/app/controllers/api/v1/mutes_controller.rb index 623274b964..53eb2554b6 100644 --- a/app/controllers/api/v1/mutes_controller.rb +++ b/app/controllers/api/v1/mutes_controller.rb @@ -7,14 +7,14 @@ class Api::V1::MutesController < ApiController respond_to :json def index - @accounts = Account.includes(:muting) - .references(:muting) + @accounts = Account.includes(:muted_by) + .references(:muted_by) .merge(Mute.where(account: current_account) .paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])) .to_a - next_path = api_v1_mutes_url(pagination_params(max_id: @accounts.last.mutings_accounts.last.id)) if @accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) - prev_path = api_v1_mutes_url(pagination_params(since_id: @accounts.first.mutings_accounts.first.id)) unless @accounts.empty? + next_path = api_v1_mutes_url(pagination_params(max_id: @accounts.last.muted_by_ids.last)) if @accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) + prev_path = api_v1_mutes_url(pagination_params(since_id: @accounts.first.muted_by_ids.first)) unless @accounts.empty? set_pagination_headers(next_path, prev_path) end diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index 1ed51aabf8..852ffc3ab1 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -47,14 +47,14 @@ class Api::V1::StatusesController < ApiController end def favourited_by - @accounts = Account.includes(statuses: :favourites) - .references(statuses: :favourites) - .where(statuses: { id: @status.id }) - .merge(@status.favourites.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])) + @accounts = Account.includes(:favourites) + .references(:favourites) + .where(favourites: { status_id: @status.id }) + .merge(Favourite.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])) .to_a - next_path = favourited_by_api_v1_status_url(pagination_params(max_id: @accounts.last.statuses.last.favourites.last.id)) if @accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) - prev_path = favourited_by_api_v1_status_url(pagination_params(since_id: @accounts.first.statuses.first.favourites.first.id)) unless @accounts.empty? + next_path = favourited_by_api_v1_status_url(pagination_params(max_id: @accounts.last.favourites.last.id)) if @accounts.size == limit_param(DEFAULT_ACCOUNTS_LIMIT) + prev_path = favourited_by_api_v1_status_url(pagination_params(since_id: @accounts.first.favourites.first.id)) unless @accounts.empty? set_pagination_headers(next_path, prev_path) diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index 0ef7512e29..de59799588 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -50,6 +50,8 @@ module AccountInteractions # Mute relationships has_many :mute_relationships, class_name: 'Mute', foreign_key: 'account_id', dependent: :destroy has_many :muting, -> { order('mutes.id desc') }, through: :mute_relationships, source: :target_account + has_many :muted_by_relationships, class_name: 'Mute', foreign_key: :target_account_id, dependent: :destroy + has_many :muted_by, -> { order('mutes.id desc') }, through: :muted_by_relationships, source: :account has_many :conversation_mutes, dependent: :destroy has_many :domain_blocks, class_name: 'AccountDomainBlock', dependent: :destroy end