B MeiliSearch, SearchIndexingWorker: Use Config.Getting, make tests async.

This commit is contained in:
Lain Soykaf 2023-11-12 14:49:50 +04:00
commit d3f8950588
3 changed files with 72 additions and 48 deletions

View file

@ -3,6 +3,7 @@ defmodule Pleroma.Search.Meilisearch do
require Pleroma.Constants
alias Pleroma.Activity
alias Pleroma.Config.Getting, as: Config
import Pleroma.Search.DatabaseSearch
import Ecto.Query
@ -10,14 +11,14 @@ defmodule Pleroma.Search.Meilisearch do
@behaviour Pleroma.Search.SearchBackend
defp meili_headers do
private_key = Pleroma.Config.get([Pleroma.Search.Meilisearch, :private_key])
private_key = Config.get([Pleroma.Search.Meilisearch, :private_key])
[{"Content-Type", "application/json"}] ++
if is_nil(private_key), do: [], else: [{"Authorization", "Bearer #{private_key}"}]
end
def meili_get(path) do
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
endpoint = Config.get([Pleroma.Search.Meilisearch, :url])
result =
Pleroma.HTTP.get(
@ -31,7 +32,7 @@ defmodule Pleroma.Search.Meilisearch do
end
def meili_post(path, params) do
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
endpoint = Config.get([Pleroma.Search.Meilisearch, :url])
result =
Pleroma.HTTP.post(
@ -46,7 +47,7 @@ defmodule Pleroma.Search.Meilisearch do
end
def meili_put(path, params) do
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
endpoint = Config.get([Pleroma.Search.Meilisearch, :url])
result =
Pleroma.HTTP.request(
@ -63,15 +64,20 @@ defmodule Pleroma.Search.Meilisearch do
end
def meili_delete(path) do
endpoint = Pleroma.Config.get([Pleroma.Search.Meilisearch, :url])
endpoint = Config.get([Pleroma.Search.Meilisearch, :url])
Pleroma.HTTP.request(
:delete,
Path.join(endpoint, path),
"",
meili_headers(),
[]
)
with {:ok, _} <-
Pleroma.HTTP.request(
:delete,
Path.join(endpoint, path),
"",
meili_headers(),
[]
) do
:ok
else
_ -> :error
end
end
@impl true

View file

@ -3,10 +3,12 @@ defmodule Pleroma.Workers.SearchIndexingWorker do
@impl Oban.Worker
alias Pleroma.Config.Getting, as: Config
def perform(%Job{args: %{"op" => "add_to_index", "activity" => activity_id}}) do
activity = Pleroma.Activity.get_by_id_with_object(activity_id)
search_module = Pleroma.Config.get([Pleroma.Search, :module])
search_module = Config.get([Pleroma.Search, :module])
search_module.add_to_index(activity)
end
@ -14,7 +16,7 @@ defmodule Pleroma.Workers.SearchIndexingWorker do
def perform(%Job{args: %{"op" => "remove_from_index", "object" => object_id}}) do
object = Pleroma.Object.get_by_id(object_id)
search_module = Pleroma.Config.get([Pleroma.Search, :module])
search_module = Config.get([Pleroma.Search, :module])
search_module.remove_from_index(object)
end