about summary refs log tree commit diff
path: root/app/controllers/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/controllers/api
parent52119104b94f30d751b410ea865891258e1444ff (diff)
Performance improvement for notifications API
Diffstat (limited to 'app/controllers/api')
-rw-r--r--app/controllers/api/v1/apps_controller.rb2
-rw-r--r--app/controllers/api/v1/notifications_controller.rb5
2 files changed, 5 insertions, 2 deletions
diff --git a/app/controllers/api/v1/apps_controller.rb b/app/controllers/api/v1/apps_controller.rb
index fb95928a8..1b33770f4 100644
--- a/app/controllers/api/v1/apps_controller.rb
+++ b/app/controllers/api/v1/apps_controller.rb
@@ -4,6 +4,6 @@ class Api::V1::AppsController < ApiController
   respond_to :json
 
   def create
-    @app = Doorkeeper::Application.create!(name: params[:client_name], redirect_uri: params[:redirect_uris], scopes: params[:scopes])
+    @app = Doorkeeper::Application.create!(name: params[:client_name], redirect_uri: params[:redirect_uris], scopes: (params[:scopes] || Doorkeeper.configuration.default_scopes))
   end
 end
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb
index 63abee6b5..c76189e87 100644
--- a/app/controllers/api/v1/notifications_controller.rb
+++ b/app/controllers/api/v1/notifications_controller.rb
@@ -8,8 +8,11 @@ class Api::V1::NotificationsController < ApiController
 
   def index
     @notifications = Notification.where(account: current_account).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id])
+    statuses       = @notifications.select { |n| !n.target_status.nil? }.map(&:target_status)
 
-    set_maps(@notifications.select { |n| !n.target_status.nil? }.map(&:target_status))
+    set_maps(statuses)
+    set_counters_maps(statuses)
+    set_account_counters_maps(@notifications.map(&:from_account))
 
     next_path = api_v1_notifications_url(max_id: @notifications.last.id)    if @notifications.size == 20
     prev_path = api_v1_notifications_url(since_id: @notifications.first.id) unless @notifications.empty?