From f88ca4a206767e6ce1e33ee9702087e46aaccdb0 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 21 Nov 2016 16:10:42 +0100 Subject: Performance improvement for notifications API --- app/controllers/api/v1/apps_controller.rb | 2 +- app/controllers/api/v1/notifications_controller.rb | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'app/controllers/api') 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? -- cgit