1
0
Fork 1
forked from fedi/mastodon

Potentially fix notifications issue

This commit is contained in:
Eugen Rochko 2017-01-23 13:43:14 +01:00
parent 7c015ece45
commit a1894786cf

View file

@ -89,19 +89,19 @@ class ApiController < ApplicationController
return return
end end
status_ids = statuses.flat_map { |s| [s.id, s.reblog_of_id] }.compact.uniq status_ids = statuses.compact.flat_map { |s| [s.id, s.reblog_of_id] }.uniq
@reblogs_map = Status.reblogs_map(status_ids, current_account) @reblogs_map = Status.reblogs_map(status_ids, current_account)
@favourites_map = Status.favourites_map(status_ids, current_account) @favourites_map = Status.favourites_map(status_ids, current_account)
end end
def set_counters_maps(statuses) # rubocop:disable Style/AccessorMethodName def set_counters_maps(statuses) # rubocop:disable Style/AccessorMethodName
status_ids = statuses.map { |s| s.reblog? ? s.reblog_of_id : s.id }.uniq status_ids = statuses.compact.map { |s| s.reblog? ? s.reblog_of_id : s.id }.uniq
@favourites_counts_map = Favourite.select('status_id, COUNT(id) AS favourites_count').group('status_id').where(status_id: status_ids).map { |f| [f.status_id, f.favourites_count] }.to_h @favourites_counts_map = Favourite.select('status_id, COUNT(id) AS favourites_count').group('status_id').where(status_id: status_ids).map { |f| [f.status_id, f.favourites_count] }.to_h
@reblogs_counts_map = Status.select('statuses.id, COUNT(reblogs.id) AS reblogs_count').joins('LEFT OUTER JOIN statuses AS reblogs ON statuses.id = reblogs.reblog_of_id').where(id: status_ids).group('statuses.id').map { |r| [r.id, r.reblogs_count] }.to_h @reblogs_counts_map = Status.select('statuses.id, COUNT(reblogs.id) AS reblogs_count').joins('LEFT OUTER JOIN statuses AS reblogs ON statuses.id = reblogs.reblog_of_id').where(id: status_ids).group('statuses.id').map { |r| [r.id, r.reblogs_count] }.to_h
end end
def set_account_counters_maps(accounts) # rubocop:disable Style/AccessorMethodName def set_account_counters_maps(accounts) # rubocop:disable Style/AccessorMethodName
account_ids = accounts.map(&:id) account_ids = accounts.compact.map(&:id).uniq
@followers_counts_map = Follow.unscoped.select('target_account_id, COUNT(account_id) AS followers_count').group('target_account_id').where(target_account_id: account_ids).map { |f| [f.target_account_id, f.followers_count] }.to_h @followers_counts_map = Follow.unscoped.select('target_account_id, COUNT(account_id) AS followers_count').group('target_account_id').where(target_account_id: account_ids).map { |f| [f.target_account_id, f.followers_count] }.to_h
@following_counts_map = Follow.unscoped.select('account_id, COUNT(target_account_id) AS following_count').group('account_id').where(account_id: account_ids).map { |f| [f.account_id, f.following_count] }.to_h @following_counts_map = Follow.unscoped.select('account_id, COUNT(target_account_id) AS following_count').group('account_id').where(account_id: account_ids).map { |f| [f.account_id, f.following_count] }.to_h
@statuses_counts_map = Status.unscoped.select('account_id, COUNT(id) AS statuses_count').group('account_id').where(account_id: account_ids).map { |s| [s.account_id, s.statuses_count] }.to_h @statuses_counts_map = Status.unscoped.select('account_id, COUNT(id) AS statuses_count').group('account_id').where(account_id: account_ids).map { |s| [s.account_id, s.statuses_count] }.to_h