fix compatibility with meilisearch (#164)
authorfloatingghost <hannah@coffee-and-dreams.uk>
Tue, 16 Aug 2022 22:56:49 +0000 (22:56 +0000)
committerfloatingghost <hannah@coffee-and-dreams.uk>
Tue, 16 Aug 2022 22:56:49 +0000 (22:56 +0000)
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma/pulls/164

CHANGELOG.md
lib/mix/tasks/pleroma/search/meilisearch.ex
lib/pleroma/release_tasks.ex

index 7c7cd86014a699aa8220e9a910314f6e8b8dd826..3618211e4648dbd67a5a59683416275a9adae57f 100644 (file)
@@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 
 ## [Unreleased]
 
+### Fixed
+- Compatibility with latest meilisearch
+- Resolution of nested mix tasks (i.e search.meilisearch) in OTP releases
+
 ### Removed
 - Non-finch HTTP adapters. `:tesla, :adapter` is now highly recommended to be set to the default.
 
index d4a83c3cdb62747a39ca7c3efce0019bbacbb30d..27a31afcf4a684f8d87dfb8daac2abe6a3c7a7e3 100644 (file)
@@ -9,7 +9,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
   import Ecto.Query
 
   import Pleroma.Search.Meilisearch,
-    only: [meili_post: 2, meili_put: 2, meili_get: 1, meili_delete!: 1]
+    only: [meili_put: 2, meili_get: 1, meili_delete!: 1]
 
   def run(["index"]) do
     start_pleroma()
@@ -27,7 +27,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
     end
 
     {:ok, _} =
-      meili_post(
+      meili_put(
         "/indexes/objects/settings/ranking-rules",
         [
           "published:desc",
@@ -41,7 +41,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
       )
 
     {:ok, _} =
-      meili_post(
+      meili_put(
         "/indexes/objects/settings/searchable-attributes",
         [
           "content"
@@ -91,7 +91,7 @@ defmodule Mix.Tasks.Pleroma.Search.Meilisearch do
             )
 
           with {:ok, res} <- result do
-            if not Map.has_key?(res, "uid") do
+            if not Map.has_key?(res, "indexUid") do
               IO.puts("\nFailed to index: #{inspect(result)}")
             end
           else
index 1e06aafe44dfa94730f0723798ab4142c5352fc7..e43eef07095f24730153145715678597c9da540b 100644 (file)
@@ -25,7 +25,7 @@ defmodule Pleroma.ReleaseTasks do
         module = Module.split(module)
 
         match?(["Mix", "Tasks", "Pleroma" | _], module) and
-          String.downcase(List.last(module)) == task
+          task_match?(module, task)
       end)
 
     if module do
@@ -35,6 +35,13 @@ defmodule Pleroma.ReleaseTasks do
     end
   end
 
+  defp task_match?(["Mix", "Tasks", "Pleroma" | module_path], task) do
+    module_path
+    |> Enum.join(".")
+    |> String.downcase()
+    |> String.equivalent?(String.downcase(task))
+  end
+
   def migrate(args) do
     Mix.Tasks.Pleroma.Ecto.Migrate.run(args)
   end