about summary refs log tree commit diff
path: root/app/services/search_service.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2016-11-12 14:49:28 +0100
committerEugen Rochko <eugen@zeonfederated.com>2016-11-12 14:49:28 +0100
commitafded319d2558369a025b1f3335cebacc9819881 (patch)
tree2e5c0cae17213c46faff3e25a07922338d0f1ce1 /app/services/search_service.rb
parent09218d4c0152013750dd1c127d3c8267dc45f880 (diff)
Add limit to search results
Diffstat (limited to 'app/services/search_service.rb')
-rw-r--r--app/services/search_service.rb20
1 files changed, 8 insertions, 12 deletions
diff --git a/app/services/search_service.rb b/app/services/search_service.rb
index d9b627853..9e8ee6220 100644
--- a/app/services/search_service.rb
+++ b/app/services/search_service.rb
@@ -1,25 +1,21 @@
 class SearchService < BaseService
-  def call(query, resolve = false)
+  def call(query, limit, resolve = false)
     return if query.blank?
 
     username, domain = query.split('@')
 
-    if domain.nil?
-      search_all(username)
+    results = if domain.nil?
+      Account.search_for(username)
     else
-      search_or_resolve(username, domain, resolve)
+      Account.search_for("#{username} #{domain}")
     end
-  end
 
-  private
+    results = results.limit(limit).with_counters
 
-  def search_all(username)
-    Account.search_for(username)
-  end
+    if resolve && results.empty? && !domain.nil?
+      results = [FollowRemoteAccountService.new.call("#{username}@#{domain}")]
+    end
 
-  def search_or_resolve(username, domain, resolve)
-    results = Account.search_for("#{username} #{domain}")
-    return [FollowRemoteAccountService.new.call("#{username}@#{domain}")] if results.empty? && resolve
     results
   end
 end