Update SearchApiV2Service, improve postgres support

This commit is contained in:
Daniel Supernault 2023-05-05 02:10:07 -06:00
parent d34f078887
commit 666e5732a5
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -96,9 +96,10 @@ class SearchApiV2Service
$webfingerQuery = '@' . $webfingerQuery; $webfingerQuery = '@' . $webfingerQuery;
} }
$banned = InstanceService::getBannedDomains(); $banned = InstanceService::getBannedDomains();
$operator = config('database.default') === 'pgsql' ? 'ilike' : 'like';
$results = Profile::select('username', 'id', 'followers_count', 'domain') $results = Profile::select('username', 'id', 'followers_count', 'domain')
->where('username', 'like', $query) ->where('username', $operator, $query)
->orWhere('webfinger', 'like', $webfingerQuery) ->orWhere('webfinger', $operator, $webfingerQuery)
->orderByDesc('profiles.followers_count') ->orderByDesc('profiles.followers_count')
->offset($offset) ->offset($offset)
->limit($limit) ->limit($limit)
@ -161,11 +162,11 @@ class SearchApiV2Service
protected function statusesById() protected function statusesById()
{ {
$mastodonMode = self::$mastodonMode; $mastodonMode = self::$mastodonMode;
$accountId = $this->query->input('account_id');
$limit = $this->query->input('limit', 20); $limit = $this->query->input('limit', 20);
$query = '%' . $this->query->input('q') . '%'; $query = '%' . $this->query->input('q') . '%';
$results = Status::where('caption', 'like', $query) $operator = config('database.default') === 'pgsql' ? 'ilike' : 'like';
->whereProfileId($accountId) $results = Status::where('caption', $operator, $query)
->whereProfileId(request()->user()->profile_id)
->limit($limit) ->limit($limit)
->get() ->get()
->map(function($status) use($mastodonMode) { ->map(function($status) use($mastodonMode) {