search_service.rb 557 B

1234567891011121314151617181920212223
  1. # frozen_string_literal: true
  2. class SearchService < BaseService
  3. def call(query, limit, resolve = false)
  4. return if query.blank?
  5. username, domain = query.split('@')
  6. results = if domain.nil?
  7. Account.search_for(username)
  8. else
  9. Account.search_for("#{username} #{domain}")
  10. end
  11. results = results.limit(limit).with_counters
  12. if resolve && results.empty? && !domain.nil?
  13. results = [FollowRemoteAccountService.new.call("#{username}@#{domain}")]
  14. end
  15. results
  16. end
  17. end