diff options
Diffstat (limited to 'lib/api/search.rb')
-rw-r--r-- | lib/api/search.rb | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/lib/api/search.rb b/lib/api/search.rb index 3d2d4527e30..ac00d3682a0 100644 --- a/lib/api/search.rb +++ b/lib/api/search.rb @@ -20,6 +20,13 @@ module API users: Entities::UserBasic }.freeze + SCOPE_PRELOAD_METHOD = { + merge_requests: :with_api_entity_associations, + projects: :with_api_entity_associations, + issues: :with_api_entity_associations, + milestones: :with_api_entity_associations + }.freeze + def search(additional_params = {}) search_params = { scope: params[:scope], @@ -29,7 +36,9 @@ module API per_page: params[:per_page] }.merge(additional_params) - results = SearchService.new(current_user, search_params).search_objects + results = SearchService.new(current_user, search_params).search_objects(preload_method) + + Gitlab::UsageDataCounters::SearchCounter.count(:all_searches) paginate(results) end @@ -42,6 +51,10 @@ module API SCOPE_ENTITY[params[:scope].to_sym] end + def preload_method + SCOPE_PRELOAD_METHOD[params[:scope].to_sym] + end + def verify_search_scope!(resource:) # In EE we have additional validation requirements for searches. # Defining this method here as a noop allows us to easily extend it in |