1 # frozen_string_literal: true
3 class SearchService
< BaseService
4 def call(query
, limit
, resolve
= false, account
= nil)
7 results
= { accounts
: [], hashtags
: [], statuses
: [] }
9 if query
=~
/\Ahttps?:\/\
//
10 resource
= FetchRemoteResourceService
.new
.call(query
)
12 results
[:accounts] << resource
if resource
.is_a
?(Account
)
13 results
[:statuses] << resource
if resource
.is_a
?(Status
)
15 results
[:accounts] = AccountSearchService
.new
.call(query
, limit
, resolve
, account
)
16 results
[:hashtags] = Tag
.search_for(query
.gsub(/\A#/, ''), limit
) unless query
.start_with
?('@')