giant massive dep upgrade and dialyxir-found error emporium (#371)
[akkoma] / lib / pleroma / search / meilisearch.ex
index 21b44de86673ed1c881b2979cad559c7e52fc5a7..8fcf9310a2b60ddb594dc71929ce4501d8ec0fa2 100644 (file)
@@ -7,11 +7,13 @@ defmodule Pleroma.Search.Meilisearch do
   import Pleroma.Search.DatabaseSearch
   import Ecto.Query
 
+  @behaviour Pleroma.Search.SearchBackend
+
   defp meili_headers do
     private_key = Pleroma.Config.get([Pleroma.Search.Meilisearch, :private_key])
 
     [{"Content-Type", "application/json"}] ++
-      if is_nil(private_key), do: [], else: [{"X-Meili-API-Key", private_key}]
+      if is_nil(private_key), do: [], else: [{"Authorization", "Bearer #{private_key}"}]
   end
 
   def meili_get(path) do
@@ -126,7 +128,7 @@ defmodule Pleroma.Search.Meilisearch do
           trimmed
         end
 
-      if String.length(content) > 1 do
+      if String.length(content) > 1 and not is_nil(data["published"]) do
         {:ok, published, _} = DateTime.from_iso8601(data["published"])
 
         %{
@@ -139,6 +141,7 @@ defmodule Pleroma.Search.Meilisearch do
     end
   end
 
+  @impl true
   def add_to_index(activity) do
     maybe_search_data = object_to_search_data(activity.object)
 
@@ -150,15 +153,17 @@ defmodule Pleroma.Search.Meilisearch do
         )
 
       with {:ok, res} <- result,
-           true <- Map.has_key?(res, "updateId") do
-        # Do nothing
+           true <- Map.has_key?(res, "taskUid") do
+        {:ok, res}
       else
-        _ ->
+        err ->
           Logger.error("Failed to add activity #{activity.id} to index: #{inspect(result)}")
+          {:error, err}
       end
     end
   end
 
+  @impl true
   def remove_from_index(object) do
     meili_delete!("/indexes/objects/documents/#{object.id}")
   end