about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>2017-05-21 20:32:13 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-05-21 13:32:13 +0200
commit2af5cd96fee1718324061bf44f043022a3648572 (patch)
tree033532138b901928a4cb4223697fdce82c31e3b5
parent860f408475c864425f431d13db558dcb65e95de6 (diff)
Fix mutes_controller error and incorrect statuses_controller report (#3202)
This commit fixes a regression in commit
f55480756337dd4df7513e89673e81e003f1201a.
-rw-r--r--app/controllers/api/v1/mutes_controller.rb8
-rw-r--r--app/controllers/api/v1/statuses_controller.rb12
-rw-r--r--app/models/concerns/account_interactions.rb2
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 623274b96..53eb2554b 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 1ed51aabf..852ffc3ab 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 0ef7512e2..de5979958 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