about summary refs log tree commit diff
path: root/app/views/api
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-11-21 16:10:42 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-11-21 16:10:42 +0100
commitf88ca4a206767e6ce1e33ee9702087e46aaccdb0 (patch)
tree0c1cd35374632bfacdea7631e92e8d863aa7a96c /app/views/api
parent52119104b94f30d751b410ea865891258e1444ff (diff)
Performance improvement for notifications API
Diffstat (limited to 'app/views/api')
-rw-r--r--app/views/api/v1/accounts/show.rabl6
-rw-r--r--app/views/api/v1/statuses/_show.rabl4
2 files changed, 5 insertions, 5 deletions
diff --git a/app/views/api/v1/accounts/show.rabl b/app/views/api/v1/accounts/show.rabl
index 623329059..c01349ef2 100644
--- a/app/views/api/v1/accounts/show.rabl
+++ b/app/views/api/v1/accounts/show.rabl
@@ -6,6 +6,6 @@ node(:note)            { |account| Formatter.instance.simplified_format(account)
 node(:url)             { |account| TagManager.instance.url_for(account) }
 node(:avatar)          { |account| full_asset_url(account.avatar.url(:large, false)) }
 node(:header)          { |account| full_asset_url(account.header.url(:medium, false)) }
-node(:followers_count) { |account| account.try(:followers_count) || account.followers.count }
-node(:following_count) { |account| account.try(:following_count) || account.following.count }
-node(:statuses_count)  { |account| account.try(:statuses_count)  || account.statuses.count  }
+node(:followers_count) { |account| defined?(@followers_counts_map) ? (@followers_counts_map[account.id] || 0) : (account.try(:followers_count) || account.followers.count) }
+node(:following_count) { |account| defined?(@following_counts_map) ? (@following_counts_map[account.id] || 0) : (account.try(:following_count) || account.following.count) }
+node(:statuses_count)  { |account| defined?(@statuses_counts_map)  ? (@statuses_counts_map[account.id]  || 0) : (account.try(:statuses_count)  || account.statuses.count) }
diff --git a/app/views/api/v1/statuses/_show.rabl b/app/views/api/v1/statuses/_show.rabl
index 3435d1039..90457eca9 100644
--- a/app/views/api/v1/statuses/_show.rabl
+++ b/app/views/api/v1/statuses/_show.rabl
@@ -3,8 +3,8 @@ attributes :id, :created_at, :in_reply_to_id
 node(:uri)              { |status| TagManager.instance.uri_for(status) }
 node(:content)          { |status| Formatter.instance.format(status) }
 node(:url)              { |status| TagManager.instance.url_for(status) }
-node(:reblogs_count)    { |status| status.reblogs_count }
-node(:favourites_count) { |status| status.favourites_count }
+node(:reblogs_count)    { |status| defined?(@reblogs_counts_map)    ? (@reblogs_counts_map[status.id]    || 0) : status.reblogs_count }
+node(:favourites_count) { |status| defined?(@favourites_counts_map) ? (@favourites_counts_map[status.id] || 0) : status.favourites_count }
 
 child :account do
   extends 'api/v1/accounts/show'