Przeglądaj źródła

Optimize account search (#2421)

master
178inaba 7 lat temu
committed by Eugen
rodzic
commit
d2159deaf2
2 zmienionych plików z 11 dodań i 3 usunięć
  1. +5
    -3
      app/services/account_search_service.rb
  2. +6
    -0
      spec/services/account_search_service_spec.rb

+ 5
- 3
app/services/account_search_service.rb Wyświetl plik

@@ -15,12 +15,12 @@ class AccountSearchService < BaseService
private

def search_service_results
return [] if query_blank_or_hashtag?
return [] if query_blank_or_hashtag? || limit < 1

if resolving_non_matching_remote_account?
[FollowRemoteAccountService.new.call("#{query_username}@#{query_domain}")]
else
search_results_and_exact_match.compact.uniq
search_results_and_exact_match.compact.uniq.slice(0, limit)
end
end

@@ -29,7 +29,9 @@ class AccountSearchService < BaseService
end

def search_results_and_exact_match
[exact_match] + search_results.to_a
exact = [exact_match]
return exact if !exact[0].nil? && limit == 1
exact + search_results.to_a
end

def query_blank_or_hashtag?


+ 6
- 0
spec/services/account_search_service_spec.rb Wyświetl plik

@@ -13,6 +13,12 @@ describe AccountSearchService do

expect(results).to eq []
end
it 'returns empty array for limit zero' do
Fabricate(:account, username: 'match')
results = subject.call('match', 0)

expect(results).to eq []
end
end

describe 'searching for a simple term that is not an exact match' do


Ładowanie…
Anuluj
Zapisz